You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按索引相加两个Pandas DataFrame且不产生NaN值

按索引合并相加Pandas DataFrame(保留所有索引)

直接用+运算符会因索引对齐缺失产生NaN,要实现保留所有索引并按索引相加的需求,使用Pandas的add()方法并指定fill_value=0即可解决。

示例代码

import pandas as pd

# 构造示例DataFrame
df1 = pd.DataFrame(
    {'Column1': [1, 2, 3], 'Column2': [4, 5, 6]},
    index=['Item1', 'Item3', 'Item2']
)

df2 = pd.DataFrame(
    {'Column1': [1, 2], 'Column2': [3, 4]},
    index=['Item1', 'Item2']
)

# 按索引相加,缺失值填充为0
combined_df = df1.add(df2, fill_value=0)

print(combined_df)

运行结果

Column1  Column2
Item1     2.0      7.0
Item2     5.0     10.0
Item3     2.0      5.0

原理说明

  • add()方法会自动对齐两个DataFrame的索引和列
  • fill_value=0参数会将仅在单个DataFrame中存在的索引/列位置填充为0,相加时不会产生NaN,直接保留原DataFrame中的数值(x + 0 = x)
  • 结果为浮点数是Pandas算术运算的默认行为,若需要整数类型,可追加combined_df = combined_df.astype(int)转换

内容的提问来源于stack exchange,提问作者Buracku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 17:50:29