2017-06-05 75 views
0

我有一個200行的excel文件,其中2個文件中包含逗號分隔值。如果我把它們輸出到製表符分隔的,它應該是這樣的:在python中爆炸csv

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

我要爆炸拿到這樣的數據幀,爆炸200行到〜4000:

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

我不沒有看到熊貓中的任何爆炸功能,也無法弄清楚如何做到這一點,因爲逗號分隔值的列長度不均勻 - 不知道如何拆分在這裏工作。

幫我堆棧溢出,你是我唯一的希望。謝謝!

+0

我發現了這一點,但我沒有我的數據是一個列表格式 - 不知道這是一個有用的線索對於任何人來說https://stackoverflow.com/questions/32468402/how-to-explode-a-list-inside-a-dataframe-cell-into-separate-rows –

回答

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 
+0

不可思議。頭腦風暴。謝謝!我有2個csv列 - 我將如何添加第二個拆分列以獲取col1,col2(csv),col3(csv)的所有組合? –

+0

當然沒問題。一旦發佈,我會在這裏評論一個鏈接。 –

+0

https://stackoverflow.com/questions/44361394/exploding-multiple-csv-fields-in-python –