2017-06-16 18 views
1

データフレームマージに関する基本的な質問があります。私は2つのデータフレームをマージした後、結果にほんのわずかの列しか選択しない方法があります。Python Pandas Dataframeをマージしていくつかの列しか選択しない

ドキュメントから例に取ると

https://pandas.pydata.org/pandas-docs/stable/merging.html#

left = pd.DataFrame({'key1': ['K0', 'K0', 'K1', 'K2'], 
        'key2': ['K0', 'K1', 'K0', 'K1'], 
        'A': ['A0', 'A1', 'A2', 'A3'], 
        'B': ['B0', 'B1', 'B2', 'B3']}) 


right = pd.DataFrame({'key1': ['K0', 'K1', 'K1', 'K2'], 
          'key2': ['K0', 'K0', 'K0', 'K0'], 
          'C': ['C0', 'C1', 'C2', 'C3'], 
          'D': ['D0', 'D1', 'D2', 'D3']}) 



result = pd.merge(left, right, on=['key1', 'key2']) 

として結果が来る:

A B key1 key2 C D 
0 A0 B0 K0 K0 C0 D0 
1 A2 B2 K1 K0 C1 D1 
2 A2 B2 K1 K0 C2 D2 
None 

は、私が '正しい' データフレームからのみ列 'C' を選ぶことができます方法はありますか?

A B key1 key2 C 
0 A0 B0 K0 K0 C0 
1 A2 B2 K1 K0 C1 
2 A2 B2 K1 K0 C2 
None 

答えて

1
result = pd.merge(left, right[['key1','key2','C']], on=['key1', 'key2']) 

OR

right.merge(left, on=['key1','key2'])[['A','B','C','key1','key2']] 
+0

グレート:たとえば、私は私の結果は以下のようになりたいです。あなたのフィルタリングされた列のデータフレームが正しいことがわかります。 – ProgSky

関連する問題