熊猫加入2个dataframes
问题描述:
我有2个dataframes:熊猫加入2个dataframes
>>> result
id order_nr
0 3131334 334756912
0 3131312 386517432
0 3131309 356299432
0 3131205 397514312
...
>>> OMSdf
order_nr status refund_amount
0 377766482 already_canceled 0
1 348722582 already_canceled 0
2 395287472 on_hold 0
3 345883652 already_canceled 0
...
那些2个dataframes在该领域 “order_nr” 一些共同的价值观:
>>> result[result['order_nr'] == '377766482']
id order_nr
0 3129153 377766482
>>> OMSdf[OMSdf['order_nr'] == '377766482']
order_nr status refund_amount
0 377766482 already_canceled 0
但是我尝试加入他们在一起:
resultfinal = result.join(OMSdf, on='order_nr', how='inner', lsuffix='', rsuffix='_oms', sort=False)
结果为空:
>>> resultfinal
Empty DataFrame
Columns: [id, order_nr, order_nr_oms, status, refund_amount]
Index: []
答
使用下面的代码
df_merged = pd.merge(result, OMSdf, how='inner')
在你的情况,你可以order_nr
作为两个对接前的dataframes指数,如下
result.index = result['order_nr']
OMSdf.index = OMSdf['order_nr']
由于它的工作原理,但我不理解为什么第一个语法不是 – user2741700
请看看编辑后的响应。基本上你需要在加入之前转换索引 –