当不存在公共记录时,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 合并删除添加的列的主要内容,如果未能解决你的问题,请参考以下文章