在python中爆炸csv

时间:2017-06-05 03:11:07

标签: python pandas

我有一个包含200行的excel文件,其中2行中包含逗号分隔值。如果我将它们输出到制表符分隔符,它将如下所示:

col1  col2
a     b,c
d     e,f,g

我需要爆炸才能获得这样的数据帧,将200行扩展到~4,000:

col1  col2
a     b
a     c
d     e
d     f
d     g

我没有看到熊猫中的任何爆炸功能,而且我们已经能够弄清楚如何使逗号分隔值的列长度不均匀 - 不确定分割在这里如何工作。

帮我堆叠溢出,你是我唯一的希望。谢谢!

1 个答案:

答案 0 :(得分:1)

让我们使用pd.DataFrame.str.splitstack

df_out = (pd.DataFrame(df.col2.str.split(',').tolist(), index=df.col1)
      .stack()
      .reset_index()
      .drop('level_1',axis=1)
      .rename(columns={0:'col2'}))

输出:

  col1 col2
0    a    b
1    a    c
2    d    e
3    d    f
4    d    g