多列上的列映射[重复]

Posted

技术标签:

【中文标题】多列上的列映射[重复]【英文标题】:Column Mapping on Multi-columns [duplicate] 【发布时间】:2018-10-09 15:29:49 【问题描述】:

Df1:

Country Sex Year Bin
NZ      M   2005  1
NZ      F   2005  1
NZ      M   2007  3
KR      F   2005  2

... Df2:

Country Sex Year Rate
NZ      M   2005  0.5
NZ      M   2006  0.4
NZ      F   2005  0.6
NZ      F   2006  0.3

... 期望的结果:

Country Sex Year Bin Rate
NZ      M   2005  1   0.5
NZ      F   2005  1   0.6
NZ      M   2007  3   NaN
KR      F   2005  2   NaN

如何通过匹配 Df1 的 [Country, Sex and Year] 上的输入来加入 Df2 的数据框以达到预期的结果。 我尝试过合并/连接,但它似乎只将 1 列识别为映射标准,并最终将所有输入连接在一起..

【问题讨论】:

df1.merge(df2, how='left') 得到什么? 【参考方案1】:

试试下面的代码

result = pd.merge(DF1, DF2, how='left', on=['Country', 'Sex','Year'])

【讨论】:

谢谢,不知道'on',实际上尝试过,但对多列使用双 [[..]] .. 最终出错。再次感谢! @DevinLee:- 欢迎!!

以上是关于多列上的列映射[重复]的主要内容,如果未能解决你的问题,请参考以下文章

数据框在多列上连接,pyspark中的列有一些条件[重复]

Pandas列表的列,通过迭代(选择)三列的每个列表元素作为新列和行来创建多列[重复]

一次在多列上使用 pandas groupby().apply(list) [重复]

横向视图/在 Spark 中用多列爆炸,得到重复

基于具有列表值的多列删除数据框中的重复行[重复]

如何在数据框中聚合具有多列的重复行[重复]