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?的主要内容,如果未能解决你的问题,请参考以下文章