8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

将 Pandas 列表中的一列拆分为多列

Amir Mohsen 1月前

132 0

我有一个带有一列的 Pandas DataFrame:import pandas as pddf = pd.DataFrame({\'teams\': [[\'SF\', \'NYG\'] for _ in range(7)]}) teams0 [SF, NYG]1 [SF, NYG]...

我有一个包含一列的 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]

如何将这一列列表分成两列?

期望结果:

  team1 team2
0    SF   NYG
1    SF   NYG
2    SF   NYG
3    SF   NYG
4    SF   NYG
5    SF   NYG
6    SF   NYG
帖子版权声明 1、本帖标题:将 Pandas 列表中的一列拆分为多列
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Amir Mohsen在本站《pandas》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 根据前面的答案,这里是另一个解决方案,它返回与 df2.teams.apply(pd.Series) 相同的结果,但运行时间更快:

    pd.DataFrame([{x: y for x, y in enumerate(item)} for item in df2['teams'].values.tolist()], index=df2.index)
    

    时间安排:

    In [1]:
    import pandas as pd
    d1 = {'teams': [['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG'],
                    ['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG']]}
    df2 = pd.DataFrame(d1)
    df2 = pd.concat([df2]*1000).reset_index(drop=True)
    
    In [2]: %timeit df2['teams'].apply(pd.Series)
    
    8.27 s ± 2.73 s per loop (mean ± std. dev. of 7 runs, 1 loop each)
    
    In [3]: %timeit pd.DataFrame([{x: y for x, y in enumerate(item)} for item in df2['teams'].values.tolist()], index=df2.index)
    
    35.4 ms ± 5.22 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
    
返回
作者最近主题: