我有两个数据框,我想使用两列作为关键字将它们合并,并创建另一个合并的数据框。 其中,Column1是字符串类型,Column2是浮点型。 我想在Column2上设置0.01的公差,使得来自Dataframe1的(John, 1.12)和来自Dataframe2的(John, 1.13)可以在同一行中出现。 我该如何实现?
例如: 两个数据框:
df1 = pd.DataFrame({"Name":["John","Millon"], "MarketVal":[1.12,2.11], "Left_Product":["Sugar","Salt"]})
df2 = pd.DataFrame({"Name":["John","Rex"], "MarketVal":[1.13,3.11], "right_Product":["Sugar","Salt"]})
如果我执行:
dfMerge = pd.merge(df1,df2,on=["Name","MarketVal"], how= "outer")
如果MarketVal在两个数据框中不同,那么这将为“John”创建2行。但我想保持容差为0.01,使它们位于同一行。
Actual :->
Name MarketVal Left_Product right_Product
0 John 1.12 Sugar NaN
1 Millon 2.11 Salt NaN
2 John 1.13 NaN Sugar
3 Rex 3.11 NaN Salt
Expected :->
Name MarketVal Left_Product right_Product
0 John 1.12 Sugar Sugar
1 Millon 2.11 Salt NaN
2 Rex 3.11 NaN Salt
merge-asof
。 - sushanth