将pandas中不均匀的数据帧从锯齿状宽改为高
我有5k行,每行最多有10个关联值,例如:将pandas中不均匀的数据帧从锯齿状宽改为高,pandas,reshape,Pandas,Reshape,我有5k行,每行最多有10个关联值,例如: df=pd.DataFrame({'col1':['a','b','c'],'col2':['a1,a2,a3','b1','c1,c2']}) col1 col2 0 a a1,a2,a3 1 b b1 2 c c1,c2 我想制作一个独特的映射,如: pd.DataFrame({'col1':['a','a','a','b','c','c'],'col2':['a1','a2','a3','b1','c1'
df=pd.DataFrame({'col1':['a','b','c'],'col2':['a1,a2,a3','b1','c1,c2']})
col1 col2
0 a a1,a2,a3
1 b b1
2 c c1,c2
我想制作一个独特的映射,如:
pd.DataFrame({'col1':['a','a','a','b','c','c'],'col2':['a1','a2','a3','b1','c1','c2']})
col1 col2
0 a a1
1 a a2
2 a a3
3 b b1
4 c c1
5 c c2
我尝试了df.explode('col2'),但它不起作用
有什么建议吗?您可以使用转换为列表,然后您可以使用:
熊猫您可以使用转换为列表,然后您可以使用:
关于如何转换为列表,我思考了很久。谢谢我一直在思考如何转换为列表。谢谢
df['col2']=df['col2'].str.split(',')
df=df.explode('col2')
print(df)
col1 col2
0 a a1
0 a a2
0 a a3
1 b b1
2 c c1
2 c c2
df['col2']=df['col2'].str.split(',')
df=pd.DataFrame({'col1':df.col1.repeat(df.col2.str.len()),'B':np.concatenate(df.col2.values)})
print(df)
col1 B
0 a a1
0 a a2
0 a a3
1 b b1
2 c c1
2 c c2