在Pandas数据框中展开定界单元格

时间:2019-11-11 14:59:43

标签: python pandas

我有一个看起来像这样的数据结构:

        A         B                       C
-0.093911  0.597749  foo,bar,delimited,list
-0.460680  0.475724                0.492991

我想将列中的定界值分成不同的行,其余各行的值与目标行相同。目标数据框示例:

        A         B          C
-0.093911  0.597749  foo
-0.093911  0.597749  bar
-0.093911  0.597749  delimited
-0.093911  0.597749  list
-0.460680  0.475724  0.492991

使用.iterrows()并检查尝试用定界符分割列'C'的长度很容易,然后从那里创建必要的行。我想知道熊猫里有没有一个我可以错过的内置物品?

1 个答案:

答案 0 :(得分:3)

使用DataFrame.explode列中的Series.str.split在熊猫0.25以上版本中工作:

df = df.assign(C = df.C.str.split(',')).explode('C').reset_index(drop=True)
print (df)
          A         B          C
0 -0.093911  0.597749        foo
1 -0.093911  0.597749        bar
2 -0.093911  0.597749  delimited
3 -0.093911  0.597749       list
4 -0.460680  0.475724   0.492991