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

求助:为DataFrame新增sum_columns列时结果全为NaN的问题

解决DataFrame新增数值列求和列全为NaN的问题

你的代码出现全NaN的原因是:df.select_dtypes(include="number").apply(np.sum)默认按列计算求和,得到的是一个以原数值列名为索引的Series。当把这个Series赋值给df的新列时,由于它的索引和df的行索引不匹配,导致所有行都填充为NaN。

正确解决方案

方法1:直接使用sum方法(推荐,效率更高)

通过指定axis=1参数,让求和操作按行执行:

import pandas as pd
import numpy as np

# 示例DataFrame
df = pd.DataFrame({
    'col1': [1, 2, 3],
    'col2': [4.1, 5.2, 6.3],
    'col3': ['foo', 'bar', 'baz']
})

# 筛选数值列并按行求和,新增sum_columns列
df["sum_columns"] = df.select_dtypes(include="number").sum(axis=1)

方法2:使用apply并指定axis=1

如果你更习惯用apply,只需补充axis=1参数即可:

df["sum_columns"] = df.select_dtypes(include="number").apply(np.sum, axis=1)

两种方法都能正确匹配df的行索引,生成每行对应数值列的求和结果,不会出现NaN。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 12:50:21