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

如何将 Pandas 列表的列拆分为多列?

Patricia Arquette
发布: 2024-12-19 18:02:10
原创
287 人浏览过

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

将 Pandas 列表列拆分为多个列

问题

考虑一个包含列表的列的 Pandas DataFrame:

import pandas as pd

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

       teams
0  [[SF, NYG]]
1  [[SF, NYG]]
2  [[SF, NYG]]
3  [[SF, NYG]]
4  [[SF, NYG]]
5  [[SF, NYG]]
6  [[SF, NYG]]
登录后复制

要将此列转换为两个单独的列,请按照以下步骤操作步骤:

解决方案

  1. 使用 to_list() 创建值列表:
import pandas as pd

d1 = {'teams': [['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG'],
                ['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG']]}
df2 = pd.DataFrame(d1)
print (df2)
       teams
0  [SF, NYG]
1  [SF, NYG]
2  [SF, NYG]
3  [SF, NYG]
4  [SF, NYG]
5  [SF, NYG]
6  [SF, NYG]
登录后复制
  1. 使用提取列分配:

分配一个具有所需列的新 DataFrame:

df2[['team1','team2']] = pd.DataFrame(df2.teams.tolist(), index= df2.index)
print (df2)
       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
登录后复制
  1. 为结果创建新 DataFrame:

或者,可以创建一个新的 DataFrame分别:

df3 = pd.DataFrame(df2['teams'].to_list(), columns=['team1','team2'])
print (df3)
  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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板