【发布时间】:2020-02-23 15:00:15
【问题描述】:
如果key match和column id不匹配,如何合并两个pandas DataFrame?
testchunck1.csv:
excel1 user_id public_key
0 Mark key1
1 Rhonda key2
2 Clara key3
3 Riley key4
testchunck2.csv:
excel2 user_id public_key
0 Ron key2
1 Russel key1
2 Dwyane key2
3 Abrax key4
输出_df:
userid_left public_key userid_right
0 Mark key1 Russel
1 Rhonda key2 Ron
2 Rhonda key2 Dwyane
注意:key4 在两个 DF 中匹配,但 ID(3) 相同,因此不在输出中
我的代码:
test1Excel = pd.read_csv("testchunk.csv")
test2Excel = pd.read_csv("testchunk2.csv")
df = pd.merge(test1Excel,test2Excel, on='public_key', how='inner', suffixes = ('_left','_right')).dropna()
- 尝试使用
.filter()过滤掉合并后的行,但是 不成功。 - 尝试读取 excel 的每一行以检查是否 ID匹配,但这需要很多时间。
- 尝试通过条件 在 on 参数本身内,但不允许这样做
因此转向 SO。
【问题讨论】:
-
所以你要匹配,只有各自的行号不匹配,对吧?
-
是的,没错。如果行号/id 不匹配,并且键匹配,则它在输出中。
-
尝试使用 .filter() 过滤掉合并后的行,但不成功。 对我来说,这听起来像是一个不错的解决方案,为什么它不起作用?另外,请以其他人更容易使用的格式分享您的数据,请参阅minimal reproducible example。