Python Pandas数据框合并并仅选择少数列。

12

我有一个有关数据框合并的基本问题。在合并两个数据框后,是否有方法可以在结果中只选择几列。

以文档中的示例为例

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
有没有一种方法可以只从“right”数据框中选择“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个回答

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

或者

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

1
太好了。我看到你已经过滤出了正确的数据框架列。 - ProgSky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接