python - 使用条件添加两个不同大小的df列
问题描述
我有两个不同大小的df。我必须在 df1 和 df2 中添加具有匹配 account_num 的loan_amnt 列,如果在 df2 中没有匹配的 account_num,则将其传递并粘贴来自 df1 的值。最后从结果中减去 df3。
第一个df1:
account_num loan_amnt
124 1359467
125 2537290
126 9152838
127 7738935
129 4446699
130 1176879
131 2629022
132 7497333
143 4992738
144 3483429
148 1027315
149 3529133
150 3481139
第二个df2:
account_num loan_amnt
124 6334892
125 4384097
126 1110000
127 4110000
129 3344000
131 1171246
132 4326000
143 1100310
149 2843147
第三个df3
account_num loan_amnt
124 1360100
125 2119064
126 8600635
127 7749935
129 4767909
130 9088889
131 2631015
132 1003917
143 5413355
144 3446656
148 1027315
149 3749521
150 3266721
公式为:result_df = (df + df2) - df3
我尝试了各种方法,但没有得到预期的结果。
解决方案
使用 ifaccount_num
是每个 DataFrame 使用和DataFrame.add
参数的索引:DataFrame.sub
fill_value=0
result_df = df.add(df2, fill_value=0).sub(df3, fill_value=0)
如果列account_num
首先创建索引:
result_df = (df.set_index('account_num')
.add(df2.set_index('account_num'), fill_value=0)
.sub(df3.set_index('account_num'), fill_value=0)
.reset_index())
推荐阅读
- react-native - 使用 multer 将本机图像上传到节点服务器
- extjs - sencha 7.3.1 经典框架的导出插件不起作用
- scilab - Scilab,计算部分向量的平均值(矩阵列)
- css - nth-child() 不工作 wither material-ui
- javascript - 从 Angular 调用纯 JavaScript 代码会更改“this”引用
- swift - 导航链接错误
- javascript - 将多个PDF文件合并为一个角度8
- javascript - 使用javascript创建单选按钮html表单,它不断创建重复的ID
- swift - SwiftUI - DragGesture 和 .onDelete 冲突
- java - 检测 Android 中的 BLE 设备名称更改