如何有效地向 Pandas DataFrame 添加多個列?

DDD
發布: 2024-10-25 09:54:02
原創
383 人瀏覽過

How to Efficiently Add Multiple Columns to a Pandas DataFrame?

同時為Pandas DataFrame 分配多個列

在Pandas 中使用資料幀的背景下,出現的問題是如何有效地添加多個列一項作業中的列。

最初的嘗試及其缺點

許多使用者自然會嘗試使用以下語法來完成此任務:

df[['column_new_1', 'column_new_2', 'column_new_3']] = [np.nan, 'dogs', 3]
登入後複製

但是,這種語法方法失敗了,因為Pandas 在使用列列表語法建立新列時要求右側是DataFrame。

替代方法

多種可行的解決方案存在是為了達到想要的結果。以下是一些建議的方法:

1.使用迭代器解包進行單列賦值

df['column_new_1'], df['column_new_2'], df['column_new_3'] = np.nan, 'dogs', 3
登入後複製

2.使用Pandas.DataFrame() 擴充DataFrame

df[['column_new_1', 'column_new_2', 'column_new_3']] = pd.DataFrame([[np.nan, 'dogs', 3]], index=df.index)
登入後複製

3.使用Pandas.concat

df = pd.concat(
    [
        df,
        pd.DataFrame(
            [[np.nan, 'dogs', 3]], 
            index=df.index, 
            columns=['column_new_1', 'column_new_2', 'column_new_3']
        )
    ], axis=1
)
登入後複製

4 連接。使用 Pandas.join

df = df.join(pd.DataFrame(
    [[np.nan, 'dogs', 3]], 
    index=df.index, 
    columns=['column_new_1', 'column_new_2', 'column_new_3']
))
登入後複製

5 加入。使用 Pandas.join

df = df.join(pd.DataFrame(
    {
        'column_new_1': np.nan,
        'column_new_2': 'dogs',
        'column_new_3': 3
    }, index=df.index
))
登入後複製

6. 進行字典擴充。 .assign() 的多列參數

df = df.assign(column_new_1=np.nan, column_new_2='dogs', column_new_3=3)
登入後複製

7.列建立與指派

new_cols = ['column_new_1', 'column_new_2', 'column_new_3']
new_vals = [np.nan, 'dogs', 3]
df = df.reindex(columns=df.columns.tolist() + new_cols)  # add empty cols
df[new_cols] = new_vals  # multi-column assignment works for existing cols
登入後複製

8.單獨的作業

df['column_new_1'] = np.nan
df['column_new_2'] = 'dogs'
df['column_new_3'] = 3
登入後複製

方法的選擇取決於使用者的特定要求。為了簡單和高效,單獨分配通常可能是首選解決方案。但是,如果需要新增具有相同類型或值的多個列,其他方法可以提供靈活性和簡潔性。

以上是如何有效地向 Pandas DataFrame 添加多個列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!