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

如何在不修改原数据集的前提下删除指定行并计算特定列平均值

解决方法

问题分析

你的代码存在两个核心问题:

  • Pandas的drop()方法默认返回新的DataFrame,不会修改原数据集,但你没有将返回结果赋值给变量,相当于白执行了删除操作。
  • Nba.drop([25,72,63],axis=0),['Age'].mean()是语法错误,逗号分隔的写法无法实现链式操作,正确逻辑应该是先获取删除指定行后的数据集,再选取目标列计算平均值。

正确实现代码

以下两种方法都不会修改原数据集,仅基于原数据生成子集计算平均值:

方法1:链式调用drop()与列选取

import pandas as pd
import numpy as np

# 读取原数据集,原数据全程保持不变
nba = pd.read_csv(r"C:\Users\User\Downloads\nba.CSV")
# 删除指定行后直接计算Age列平均值
age_average = nba.drop([25, 72, 63], axis=0)['Age'].mean()
print(age_average)

方法2:用.loc排除指定索引行

如果担心drop()的索引定位问题,可以用isin()配合布尔索引排除目标行:

import pandas as pd
import numpy as np

nba = pd.read_csv(r"C:\Users\User\Downloads\nba.CSV")
# 排除索引为25、72、63的行,计算Age列平均值
age_average = nba.loc[~nba.index.isin([25, 72, 63]), 'Age'].mean()
print(age_average)

注意事项

  • Python是大小写敏感语言,变量名NBA和Nba会被视为不同变量,建议保持命名统一(比如全小写nba)。
  • 两种方法都不会修改原nba数据集,完全符合你"不修改原数据集"的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 16:46:37