Pandas中列名相同、索引值部分匹配的不同长度DataFrame列求和方法
最优实现方案
直接使用Pandas原生的add()算术方法即可,依靠Pandas运算自动对齐索引、列名的特性,一行代码就能完成操作,无论性能还是可读性都是最优选择。
核心代码
# 直接对df1重新赋值即可 df1 = df1.add(df2, fill_value=0)
逻辑说明
- 运算时会自动匹配两个DataFrame的Buckets索引和对应列名,仅对索引重叠的行列位置执行相加操作
fill_value=0的作用是:仅在df1中存在、df2中不存在的索引,运算时默认补0,最终取值就是df1的原值,不会被修改- 该方法是Pandas内置的向量化实现,远比自行遍历索引判断存在性再赋值的写法效率高,代码也更简洁。
提示:如果你的DataFrame包含非数值类型的列,建议先筛选出数值列执行相加操作,再拼接回非数值列,避免出现类型报错。
内容的提问来源于stack exchange,提问作者Manik Singal
相关产品推荐
相关产品推荐

