我正在尝试将数据帧转换为输出数据帧格式。在特定的单元格中有多个值,以“,”分隔。当我使用.stack()
将许多值转换为行时,其余的空单元格将用NaN
填充。 pandas
中是否有任何通用的解决方案可以解决这个问题?
输入数据框:
x1 y1 x2 x3 x4
abc x or y v1,v2,v3 l1,l2,l3 self
abc z no1,no2,no3 e1,e2,e3 self
输出数据框:
x1 y1 x2 x3 x4
abc x v1 l1 self
v2 l2
v3 l3
y v1 l1 self
v2 l2
v3 l3
abc z no1 e1 self
no2 e2
no3 e3
答案 0 :(得分:0)
df.set_index(df.index).apply(lambda x: x.str.split(",").apply(pd.Series).stack()).reset_index(drop=True).fillna("")
输出:
x1 x2 x3 x4
0 abc v1 11 self
1 v2 12
2 v3 13
3 abc no1 e1 self
4 no2 e2
5 no3 e3