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

如何删除DataFrame中的#NaN行以计算均值与求和?

解决办法

首先,你遇到的问题核心有两个:一是drop(index=[0])没生效,二是用statistics.mean处理带NaN的pandas Series会报错。

1. 修复drop不生效的问题

pandas.DataFrame.drop()默认返回新的DataFrame,不会直接修改原数据。如果没把结果重新赋值,原Read_FDX根本没变化。正确写法:

Read_FDX = Read_FDX.drop(index=[0])  # 将删除后的结果重新赋值给原变量

2. 更高效的处理:不用删行,直接忽略NaN计算统计量

其实完全没必要删除第一行,pandas自带的统计方法会自动忽略NaN值,比statistics模块更适配pandas数据结构:

# 直接用pandas的mean方法计算均值
returns_mean = Read_FDX['%Returns'].mean()
# 求和同理
returns_sum = Read_FDX['%Returns'].sum()

3. 可选:彻底移除含NaN的行(若需干净数据集)

如果后续操作需要完全无NaN的数据集,可以用dropna()精准删除目标列的NaN行:

# 仅删除'%Returns'列包含NaN的行
Read_FDX_clean = Read_FDX.dropna(subset=['%Returns'])
# 此时用statistics模块也能正常计算
statistics.mean(Read_FDX_clean['%Returns'])

补充说明

pct_change()生成第一行NaN是正常现象——第一个数据没有前值可计算变化率。优先用pandas内置统计方法是最省心的方案,无需手动处理NaN。

内容的提问来源于stack exchange,提问作者Seyed Hossein Fatemi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 01:17:14