python - 如何基于多列合并两个不相等的数据框?
问题描述
我想合并两个数据框。
数据框1:
Name Early Mid Late AverageS Date Place Rno Num Bar
xyz 32.0 12.2 32 76 20190202 NY 1 4 2
abc 46.0 24.2 96 67 20190802 SA 2 6 2
ghj 29.0 85.2 34 35 20190211 PY 3 2 7
yui. 9.0 5.2 4 5 20191105 AU 4 1 9
......
数据框2:
Name Date Place Rno Num Bar Finish Position
xyz 20190202 NY 1 4 2 1
ghj 20190211 PY 3 2 7 4
abc 20190802 SA 2 6 2 2
......
所需的数据框:
Name Early Mid Late AverageS Date Place Rno Num Bar Finish Position
xyz 32.0 12.2 32 76 20190202 NY 1 4 2 1
abc 46.0 24.2 96 67 20190802 SA 2 6 2 2
ghj 29.0 85.2 34 35 20190211 PY 3 2 7 4
yui 9.0 5.2 4 5 20191105 AU 4 1 9 NAN
......
我试过了,但“完成位置”的值在合并的 df 中都被更改为 NAN。
df = df1.merge(df2,how='left', on=['Name','Bar','Rno','Place','Date','Num'])
解决方案
也许 dataframe2 没有 [Name] 为“yui”的行,因此它显示为“NaN”。
我看到dataframe1中的行显示为“yui”,可能只是“yui”。与“yui”不匹配。
推荐阅读
- c# - 在 CsvHelper 中使用应该引用的问题
- python-3.x - 请解释这里发生了什么: b=[x[:] for x in a]
- typescript - 如何制作具有全局可访问类型的 NPM 模块
- php - 在联系表单中添加附加字段
- javascript - 如何在某些条件下使用 forEach 循环打印 2 个数组?
- android - 矢量资产在我创建时给出错误“currentColor”
- ember.js - 如何在 Ember 模板中显示 API 响应?
- android - 如何处理播放订单
- node.js - 图片的特殊名称 Discord.js
- xslt - 如何修复 XSLT 中金额字段的十进制数字