首頁 > 後端開發 > Python教學 > 如何有效地將 Pandas 清單列拆分為多列?

如何有效地將 Pandas 清單列拆分為多列?

Mary-Kate Olsen
發布: 2024-12-17 13:02:26
原創
732 人瀏覽過

How to Efficiently Split a Pandas Column of Lists into Multiple Columns?

將Pandas 清單列拆分為多個欄位

在資料探索中,通常需要將DataFrame 資料列重組為更容易管理的格式。其中一個場景涉及將包含清單的列拆分為多個列。

考慮一個包含名為“teams”的單列的DataFrame,其中包含團隊名稱列表:

import pandas as pd

df = pd.DataFrame({
    "teams": [[
        "SF", 
        "NYG"
    ] for _ in range(7)]
})
登入後複製

要拆分此列將“teams”列分成兩列“team1”和“team2”,我們可以利用DataFrame 建構子以及to_list 建立的清單

選項1:修改現有DataFrame

使用to_list 方法,我們可以將「teams」列表轉換為列表列表,可用於建立新的「team1」和「team2」欄位:

df[['team1', 'team2']] = pd.DataFrame(df['teams'].tolist(), index=df.index)
登入後複製

此操作修改原始DataFrame使用新欄位:

       teams team1 team2
0  [SF, NYG]    SF   NYG
1  [SF, NYG]    SF   NYG
2  [SF, NYG]    SF   NYG
3  [SF, NYG]    SF   NYG
4  [SF, NYG]    SF   NYG
5  [SF, NYG]    SF   NYG
6  [SF, NYG]    SF   NYG
登入後複製

選項2:建立新的DataFrame

或者,如果需要,我們可以使用分割列建立一個新的DataFrame:

df3 = pd.DataFrame(
    df['teams'].tolist(), 
    columns=['team1', 'team2']
)
登入後複製

此動作建立一個單獨的DataFrame:

  team1 team2
0    SF   NYG
1    SF   NYG
2    SF   NYG
3    SF   NYG
4    SF   NYG
5    SF   NYG
6    SF   NYG
登入後複製

請注意,應用apply(pd.Series)函數來實現此分割會明顯變慢,不建議用於較大的資料集。

以上是如何有效地將 Pandas 清單列拆分為多列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板