【发布时间】:2021-03-20 09:37:47
【问题描述】:
我想合并 df1 和 df2,它们都有不同的长度。键列上的交集需要使得输出表具有 df2 中每个对应键的值,因为键列中的值是重复的。
df1
| key | value |
|---|---|
| 1 | 5 |
| 1 | 5 |
| 2 | 9 |
| 3 | 11 |
| 4 | 14 |
| 4 | 14 |
df2
| key | value |
|---|---|
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | d |
输出
| key | value | value |
|---|---|---|
| 1 | 5 | a |
| 1 | 5 | a |
| 2 | 9 | b |
| 3 | 11 | c |
| 4 | 14 | d |
| 4 | 14 | d |
我在努力 输出 = pd.merge(df1, df2, left_on = 'key', right_on = 'key') 但它会创建额外的行。
提前感谢您的帮助。
【问题讨论】:
-
我相信输出没问题。您注意到哪些额外的行?由于
df1有两次键1和4,那么在合并后,它们在最终结果中也会出现两次。可能,如果有帮助,您可以尝试pd.merge(df1,df2,on='KEY').drop_duplicates()...
标签: python pandas dataframe merge