python - 从另一行替换值与另一列上的值匹配?
问题描述
我有一个看起来像这样的数据框 df1:
INV AMOUNT Match
1 A 36.85 NaN
2 B 289.84 NaN
3 C -96.75 B
4 D -36.85 A
我想用 AMOUNT 的绝对值替换 AMOUNT 列的值,其中 MATCH 与 INV 相同。
它应该看起来像这样,只有第 2 行应该改变。
INV AMOUNT Match
1 A 36.85 NaN
2 B *96.75* NaN
3 C -96.75 B
4 D -36.85 A
换一种方式,
如果我有df1:
INV AMOUNT
1 A 36.85
2 B 289.84
3 C -96.75
4 D -36.85
和df2:
Match MONEY
1 NaN 36.85
2 NaN 289.84
3 A -96.75
4 B -36.85
将 df1 的 AMOUNT 替换为 df2 中 MONEY 列的绝对值,其中 INV 与 df2 中的 Match 列匹配。
df1 应如下所示:
INV AMOUNT
1 A 36.85
2 B 96.75
3 C -96.75
4 D -36.85
解决方案
您想合并两个数据框
df1.merge(df2, left_on='AMOUNT', right_on='MONEY').drop('MONEY',axis=1)
两个数据框将在“MONEY”和“AMOUNT” abs 值相同的所有位置合并,并且 drop 函数将为您删除公共列
推荐阅读
- c++ - 我无法从文件中读取
- javascript - 为什么 React Component 渲染计数器增加 2?
- javascript - 如何修复未定义的不是对象(评估'firebase.apps.length')
- angular - 部署和托管 Laravel Rest api 以及 Angular App 和 mysql DB
- reactjs - 蚂蚁设计怎么了?从 GitHub 中删除
- firebase - 如何在flutter firebase中进行全文搜索
- html - Bootstrap justify-content 不适用于表单
- reactjs - I cant get formik to import properly
- c - 无法从常驻 .c 文件访问的不透明指针
- javascript - node.js - 无法弄清楚为什么它不等待承诺