首頁  >  文章  >  後端開發  >  如何在一次分配中有效地將多列新增至 Pandas DataFrame ?

如何在一次分配中有效地將多列新增至 Pandas DataFrame ?

Susan Sarandon
Susan Sarandon原創
2024-10-25 13:06:021049瀏覽

How to efficiently add multiple columns to a Pandas DataFrame in a single assignment?

在單一分配中向 Pandas DataFrame 新增多個欄位

在 Pandas 中,可以透過多種方式同時新增多個欄位。一種方法是單獨為每一列分配值,但這對於多個列來說可能會變得乏味。更有效的方法是一步新增列。

乍一看,使用列列表語法將列表或數組分配給多個新列(例如df[['new1', 'new2' ]] = [標量,標量]) 可能看起來很直觀。但是,此分配僅適用於現有列。

要在單一操作中新增列並指派數值,您可以使用多種方法:

1.迭代器解包:

<code class="python">df['new1'], df['new2'], df['new3'] = np.nan, 'dogs', 3</code>

此方法迭代地將值指派給每個新欄位。

2. DataFrame 擴充:

<code class="python">df[['new1', 'new2', 'new3']] = pd.DataFrame([[np.nan, 'dogs', 3]], index=df.index)</code>

此方法建立一個具有與原始DataFrame 索引相符的單行的DataFrame,然後使用Pandas 的concat 函數將新列合併到原始列。

3.暫時 DataFrame 連線:

<code class="python">df = pd.concat([df, pd.DataFrame([[np.nan, 'dogs', 3]], index=df.index, columns=['new1', 'new2', 'new3'])], axis=1)</code>

此方法使用新欄位和值建立一個暫存 DataFrame,然後將其與原始 DataFrame 連線。

4.字典賦值:

<code class="python">df = df.join(pd.DataFrame({'new1': np.nan, 'new2': 'dogs', 'new3': 3}, index=df.index))</code>

此方法使用字典建立一個暫存 DataFrame,然後與原始 DataFrame 連接。

5. .assign() 方法:

<code class="python">df = df.assign(new1=np.nan, new2='dogs', new3=3)</code>

.assign() 方法允許一次分配多列。

6.建立列並指派值:

<code class="python">new_cols = ['new1', 'new2', 'new3']
new_vals = [np.nan, 'dogs', 3]
df = df.reindex(columns=df.columns.tolist() + new_cols)
df[new_cols] = new_vals</code>

此技術建立空列並分別分配值。

多個單獨分配:

<code class="python">df['new1'] = np.nan
df['new2'] = 'dogs'
df['new3'] = 3</code>

雖然不如其他方法高效,但單獨分配很簡單,並且可用於少量新列。

最佳選擇取決於特定要求和性能考慮。對於同時新增多個列,DataFrame 擴充或暫存 DataFrame 連接方法提供了簡潔且有效率的解決方案。

以上是如何在一次分配中有效地將多列新增至 Pandas DataFrame ?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn