2016-07-25 10 views
1

パンダのデータフレームにラベル付き系列がある場合、の名前Villainとなります。 Pandasの別の列に基づいた列の値を連結します

は、データフレームがこのような値を有していると言う:
:{ 'バットマン'、 'バットマン'、 'スパイダーマン'、 'スパイダーマン'、 'スパイダーマン'、 'スパイダーマン'}
悪人:{」

合計で、上記のデータフレームにはそれぞれ6つのデータポイントを持つ2つのシリーズ(または列)があります。各データポイントにのFirstName、LastNameの、LoveInterest

は今、名前に基づいて、私は3つの以上の列を連結します。

この結果、 'Bruce;ウェイン; 「バットマン」という名前のすべての列に「Catwoman」。そして、 'ピーター;パーカー; MaryJane 'をSpidermanという名前のすべての行に追加します。

最終結果は、5列(直列)と6行ずつのデータフレームでなければなりません。

+0

マージが2列に代わりだった場合、これは 'merge' – maxymoo

答えて

2

これは古典的な内部結合シナリオです。 pandasでは、mergeモジュールレベルの関数を使用する:パンダで

In [13]: df1 
Out[13]: 
     Name  Villain 
0  Batman   Joker 
1  Batman   Bane 
2 Spiderman Green Goblin 
3 Spiderman  Electro 
4 Spiderman   Venom 
5 Spiderman Dr. Octopus 

In [14]: df2 
Out[14]: 
    FirstName LastName LoveInterest  Name 
0  Bruce Wayne  Catwoman  Batman 
1  Peter Parker  MaryJane Spiderman 

In [15]: pd.DataFrame.merge(df1,df2,on='Name') 
Out[15]: 
     Name  Villain FirstName LastName LoveInterest 
0  Batman   Joker  Bruce Wayne  Catwoman 
1  Batman   Bane  Bruce Wayne  Catwoman 
2 Spiderman Green Goblin  Peter Parker  MaryJane 
3 Spiderman  Electro  Peter Parker  MaryJane 
4 Spiderman   Venom  Peter Parker  MaryJane 
5 Spiderman Dr. Octopus  Peter Parker  MaryJane 
+0

と呼ばれ、名前と性別を言う、それはまだ同じマージですか? – Yaitzme

+0

@ Yaitzmeそれはあなたが達成しようとしているものによって異なります。特にSQLジョインに慣れていない場合は、ドキュメントを読んでください。http://pandas.pydata.org/pandas-docs/stable/merging.html#database-style-dataframe-joining-merging –

+0

私にとって完璧な作品です!ありがとうございました! – Yaitzme

関連する問題