【问题标题】:Pandas dataframe duplicate rows with list separation in the class?Pandas 数据框重复行与类中的列表分隔?
【发布时间】:2021-01-17 10:15:10
【问题描述】:

我有一个包含如下行/记录的数据框:

数据:

id age sex weight class
0  30  1   65     ['AA', 'BB']
1  40  0   76     ['AA', 'CC', 'DD']

我的类是一个包含多个值的列表,我想复制行,在每个行中留下一个列表值。

想要的结果:

id age sex weight class
0  30  1   65     ['AA']
1  30  1   65     ['BB']
2  40  0   76     ['AA']
3  40  0   76     ['CC']
4  40  0   76     ['DD']

如何在具有类似行结构的整个数据帧上执行此操作?

id 的顺序并不重要。

【问题讨论】:

    标签: python pandas list dataframe data-manipulation


    【解决方案1】:

    你可以explode班级专栏:

    df2 = df.set_index('id').explode('class').reset_index(drop=True)
    df2['class'] = df2['class'].apply(lambda x: [x])
    df2
       age  sex  weight class
    0   30    1      65  [AA]
    1   30    1      65  [BB]
    2   40    0      76  [AA]
    3   40    0      76  [CC]
    4   40    0      76  [DD]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-09
      • 2020-05-17
      • 2011-10-27
      • 2021-12-06
      • 2019-07-25
      • 2023-03-10
      • 2020-02-27
      相关资源
      最近更新 更多