Pandas:在具有不同名称的字段上加入 DataFrames?

Posted

技术标签:

【中文标题】Pandas:在具有不同名称的字段上加入 DataFrames?【英文标题】:Pandas: join DataFrames on field with different names? [duplicate] 【发布时间】:2014-11-11 08:24:24 【问题描述】:

根据this documentation,我只能在具有相同名称的字段之间进行连接。

您知道是否可以在具有不同名称的字段上连接两个 DataFrame?

SQL 中的等价物是:

SELECT *
FROM df1
LEFT OUTER JOIN df2
  ON df1.id_key = df2.fk_key

【问题讨论】:

【参考方案1】:

我认为使用merge 可以实现您想要的。传入 left_onright_on 的关键字参数,以告诉 Pandas 将每个 DataFrame 中的哪些列用作键:

pandas.merge(df1, df2, how='left', left_on=['id_key'], right_on=['fk_key'])

文档在this page 上对此进行了更详细的描述。

【讨论】:

【参考方案2】:

df2['id_key'] = df2['fk_key'].str.lower()

df1['id_key'] = df1['id_key'].str.lower()

现在尝试合并数据框

df3 = pd.merge(df2,df1,how='inner', on='id_key')

【讨论】:

这不能回答这个问题

以上是关于Pandas:在具有不同名称的字段上加入 DataFrames?的主要内容,如果未能解决你的问题,请参考以下文章

在具有不同列名的pandas中连接2个数据帧[重复]

以长格式保存具有不同级别名称的多索引列 Pandas 为 excel 格式

django 两个 ModelForms 在一个模板上具有相同的字段名称

熊猫加入具有不同名称的列[重复]

反序列化在不同 MailChimp 列表中具有不同名称的合并字段和兴趣

为啥我的 WCF Web 服务在具有不同字段名称的不同命名空间中显示此对象?