当不存在公共记录时,Pandas 合并删除添加的列

Posted

技术标签:

【中文标题】当不存在公共记录时,Pandas 合并删除添加的列【英文标题】:Pandas merge drop the added columns when no common records exist 【发布时间】:2019-12-01 17:49:50 【问题描述】:

我根据一个键离开了连接数据框 A 到 B。合并后,我看到右数据帧上没有任何与右数据帧具有相同键的 crecord,但仍添加了右表中的列。如果没有公共记录,如何防止 Pandas 从右侧添加新列?

【问题讨论】:

请参阅How to make good pandas examples 并为您的问题提供minimal reproducible example,包括一些示例输入、当前输出和预期输出 【参考方案1】:

听起来像是左合并。在下面尝试,看看它是否为您提供了所需的输出。还包括对不同合并的一些实践经验的右侧、内部和外部。

import pandas as pd

df1 = pd.DataFrame('A': ['foo', 'bar', 'baz'],
                    'B': [1, 2, 3])
df2 = pd.DataFrame('A': ['foo', 'bar', 'trumpet'],
                    'C': [4, 5, 6])

df_left = pd.merge(df1, df2, how = 'left')
df_right = pd.merge(df1, df2, how = 'right')
df_inner = pd.merge(df1, df2, how = 'inner')
df_outer = pd.merge(df1, df2, how = 'outer')

文档中的更多详细信息:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html

【讨论】:

以上是关于当不存在公共记录时,Pandas 合并删除添加的列的主要内容,如果未能解决你的问题,请参考以下文章

合并两个 csv 文件,为所有匹配的记录添加一个带有标志值的列

Pandas:取消组合并融化空格缩进的记录

Pandas案例--人口密度分析

python--pandas合并与连接

Pandas:合并具有相似名称的列

pandas:处理其值为列表的列