Pro*_*Sky 4 merge dataframe python-2.7 python-3.x 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'])
Run Code Online (Sandbox Code Playgroud)
结果如下:
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
Run Code Online (Sandbox Code Playgroud)
有没有办法我只能从“正确的”数据框中选择列“ 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
Run Code Online (Sandbox Code Playgroud)
result = pd.merge(left, right[['key1','key2','C']], on=['key1', 'key2'])
Run Code Online (Sandbox Code Playgroud)
要么
right.merge(left, on=['key1','key2'])[['A','B','C','key1','key2']]
Run Code Online (Sandbox Code Playgroud)