python-2.7 - Python Pandas Dataframe 合并并仅选择几列

标签 python-2.7 python-3.x pandas dataframe merge

我有一个关于数据帧合并的基本问题。合并两个数据框后,有没有办法只选择结果中的几列。

从文档中获取示例

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

最佳答案

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

或者

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

关于python-2.7 - Python Pandas Dataframe 合并并仅选择几列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44593284/

相关文章:

python - 如何替换 Pandas.DataFrame 上的整个列

python - 按特定列查找表中所有对的计数

python - ipaddress.py 在有效的 ip 地址上出现错误

python - 即使属性存在,getattr() 是否总是调用现有的 __getattr__() ?

python - 使用 send 将值传递给 yield

python-3.x - 使用 Pytorch 如何定义带有索引和相应值的张量

python-3.x - 将列中的所有重复值作为 pandas 中的单个值

python - 脚本无法发出 POST 请求

Python 多处理奇怪的输出

python - Pandas `isin` 函数的更快替代方案