我正在寻找从给定数据帧中的每一行创建一个新的pandas数据帧。 行中的值是逗号分隔的字符串。
e.g。输入
COLUMN_1 COLUMN_2 COLUMN_3
"Marvel" "Hulk, Thor, Ironman" "1,7,8"
"DC" "Spiderman, Batman, Flash" "18, 74, 88"
期望输出
COLUMN_1 COLUMN_2
Hulk 1
Thor 7
Ironman 8
COLUMN_1 COLUMN_2
Spiderman 18
Batman 74
Flash 88
谢谢!
答案 0 :(得分:0)
您可以将groupby
与str.split
一起使用并创建您想要的目标
for x , y in df.groupby('COLUMN_1'):
s=pd.DataFrame({'COLUMN_1':y.COLUMN_2.str.split(', ').iloc[0],'COLUMN_2':y.COLUMN_3.str.split(',').iloc[0]})
print(s)
COLUMN_1 COLUMN_2
0 Spiderman 18
1 Batman 74
2 Flash 88
COLUMN_1 COLUMN_2
0 Hulk 1
1 Thor 7
2 Ironman 8
我们也可以将数据存储到dict中
d={x:pd.DataFrame({'COLUMN_1': y.COLUMN_2.str.split(', ').iloc[0], 'COLUMN_2': y.COLUMN_3.str.split(',').iloc[0]}) for x, y in df.groupby('COLUMN_1')}
d
Out[412]:
{'DC': COLUMN_1 COLUMN_2
0 Spiderman 18
1 Batman 74
2 Flash 88, 'Marvel': COLUMN_1 COLUMN_2
0 Hulk 1
1 Thor 7
2 Ironman 8}