gpt4 book ai didi

pandas - 将 Pandas 列拆分为多列

转载 作者:行者123 更新时间:2023-12-03 19:02:47 24 4
gpt4 key购买 nike

我有如下数据框:

     ColumnA      ColumnB         ColumnC
0 usr usr1,usr2 X1
1 xyz xyz1,xyz2,xyz3 X2
2 abc abc1,abc2,abc3 X3
我想做的是:
  • 用“,”分割B列
  • 问题是 B 列的某些单元格有 3 个变量(xyz1、xyz2、xyz3),其中一些有 6 个等等。它不稳定。

  • 预期输出:
         ColumnA      ColumnB          usercol1    usercol2    usercol3  ColumnC
    0 usr usr1,usr2 usr1 usr2 - X1
    1 xyz xyz1,xyz2,xyz3 xyz1 xyz2 xyz3 X2
    2 abc abc1,abc2,abc3 abc1 abc2 abc3 X3

    最佳答案

  • 创建一个使用 expand=True 的新数据框与 str.split()
  • 然后concat前两列,新的扩展数据框和第三个原始数据框列。这对于不均匀的列表长度是动态的。
  • df1 = df['ColumnB'].str.split(',',expand=True).add_prefix('usercol')
    df1 = pd.concat([df[['ColumnA', 'ColumnB']],df1, df[['ColumnC']]], axis=1).replace(np.nan, '-')
    df1
    Out[1]:
    ColumnA ColumnB usercol0 usercol1 usercol2 ColumnC
    0 usr usr1,usr2 usr1 usr2 - X1
    1 xyz xyz1,xyz2,xyz3 xyz1 xyz2 xyz3 X2
    2 abc abc1,abc2,abc3 abc1 abc2 abc3 X3
    从技术上讲,这也可以用一行来完成:
    df = pd.concat([df[['ColumnA', 'ColumnB']],
    df['ColumnB'].str.split(',',expand=True).add_prefix('usercol'),
    df[['ColumnC']]], axis=1).replace(np.nan, '-')
    df
    Out[1]:
    ColumnA ColumnB usercol0 usercol1 usercol2 ColumnC
    0 usr usr1,usr2 usr1 usr2 - X1
    1 xyz xyz1,xyz2,xyz3 xyz1 xyz2 xyz3 X2
    2 abc abc1,abc2,abc3 abc1 abc2 abc3 X3

    关于pandas - 将 Pandas 列拆分为多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64278047/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com