我有两个 pandas 数据框,我想根据数据框中公共(public)列的值进行合并。但是,在其中一个数据框中,列中的值不是唯一的:
df1 = pd.DataFrame(
{'SimId:': [1, 1, 1, 2, 2],
'RunId': [1, 2, 3, 1, 2],
'Velocity': [5, 6, 7, 8, 9]})
df2 = pd.DataFrame(
{'SimId': [1, 2],
'weather': ['sun', 'snow']})
因此我想得到这样的数据框:
df3 = pd.DataFrame(
{'SimId:': [1, 1, 1, 2, 2],
'RunId': [1, 2, 3, 1, 2],
'Velocity': [5, 6, 7, 8, 9],
'weather': ['sun', 'sun', 'sun', 'snow', 'snow']})
当尝试像这样合并时:
df3 = pd.merge(df1, df2, on='SimId', how='right')
我得到一个“KeyError”。
谁能帮我解决这个问题的最pythonic方法是什么?
请您参考如下方法:
您的代码有效:
df3 = pd.merge(df1, df2, on='SimId', how='right')
您只需要修正 df1 中的拼写错误:不是“SimId:”,而是“SimId”。
