首页 > 后端开发 > Python教程 > 如何有效地将 Pandas 列表列拆分为多列?

如何有效地将 Pandas 列表列拆分为多列?

Mary-Kate Olsen
发布: 2024-12-17 13:02:26
原创
727 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板