2017-06-05 3 views
0

私は200行のファイルを持っていますが、そのうち2つはコンマ区切りの値を持っています。タブ区切りに出力するI場合は、それは次のようになります。pythonでcsvを爆発

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

を私は〜4000に200行が爆発、このようなデータフレームを取得するために爆発する必要があります。

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)のすべての組み合わせを取得する2番目の分割列を追加しますか? –

+0

確かに問題ありません。それが投稿されたら、私はここでリンクにコメントします。 –

+0

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