2017-08-09 12 views
1

これは単純なものだと思いますが、今日これを理解することはできず、助けが必要でした。データフレームの行を文字列と組み合わせる

私はパンダのデータフレームを持っている:

私は

id q.name q.value w.name w.value 
0 0 A A  A1 A2 Q W  B1 B2 
1 1 A B  A3 B1 E R  C3 C1 
2 2 B  B2  Q  D2 

に変換するために探しています

id q.name q.value w.name w.value 
0 0 A A1 Q B1 
1 0 A A2 W B2 
2 1 A A3 E C3 
3 1 B B1 R C1 
4 2 B B2 Q D2 

次のようになります
df = pd.DataFrame({ 
    'id': [0, 0, 1, 1, 2], 
    'q.name':['A'] * 3 + ['B'] * 2, 
    'q.value':['A1','A2','A3','B1','B2'], 
    'w.name':['Q', 'W', 'E', 'R', 'Q'], 
    'w.value':['B1','B2','C3','C1','D2'] 
}) 

私はpd.DataFrame(df.apply(lambda s: s.str.cat(sep=" ")))を試みたが、それは明らかにしませんでした私が望んでいた結果。私は前にこれをやったことがあるが、私を助けるためにSOを思い出すか、ポストを見つけるのに苦労している。

更新: 私はこれを前に言及していたはずです。どの列を指定せずにこれを行う方法はありますか?コンテキストに基づいてDataFrameが変更されます。

データフレームを更新し、idフィールドを表示しました。これは可能でした。私は今、idフィールドのgroupbyがこれを解決すべきだと思います。

+0

可能な複製(https://stackoverflow.com/questions/ 32117848/pandas-groupby-concatenate-strings-in-multiple-columns) – Zero

+0

とhttps://stackoverflow.com/q/23794082 – Zero

+0

質問をaddiで更新できますかデータフレームとその結果の別の列? – Dark

答えて

1

UPDATE:

In [117]: df.groupby('id', as_index=False).agg(' '.join) 
Out[117]: 
    id q.name q.value w.name w.value 
0 0 A A A1 A2 Q W B1 B2 
1 1 A B A3 B1 E R C3 C1 
2 2  B  B2  Q  D2 

旧答え:[複数の列で文字列を連結GROUPBYパンダ]の

In [106]: df.groupby('category', as_index=False).agg(' '.join) 
Out[106]: 
    category  name 
0  A A1 A2 A3 
1  B  B1 B2 
+0

こんにちは、あなたの答えをありがとう、私は上記の質問を更新しました。 – vsachar

+0

@vsachar、私も答えを更新しました – MaxU

+0

データをもう一度更新しましたが、あなたの解決策は成り立っています。これありがとう。 – vsachar

関連する問題