我有一个数据框的行/记录如下:
数据:
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的顺序无关紧要。
您可以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]