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

如何用Python计算列中特定值的均值?及pandas处理自定义缺失值列

问题1:如何用Python计算数据列中特定值的均值?

如果用pandas处理数据,核心思路是先筛选出符合特定条件的行,再对目标列求均值:

  • 示例:计算score列中数值大于80的均值
import pandas as pd

# 构造示例数据
data = pd.DataFrame({'score': [75, 85, 90, 88, 70]})

# 筛选目标值并计算均值
specific_mean = data[data['score'] > 80]['score'].mean()
print(specific_mean)
  • 如果目标是列中等于某个具体值的均值(比如等于90),写法类似(结果即为该值本身):
specific_mean = data[data['score'] == 90]['score'].mean()
问题2:处理以90/99表示的缺失值并删除超标列

统计列中90/99的出现次数

# 统计每列中90和99的总数量
missing_counts = data.apply(lambda col: ((col == 90) | (col == 99)).sum())

改进删除列的代码

你的原代码存在语法错误(比如data.column不是pandas的正确用法,逻辑判断不符合向量运算规则),正确实现如下:

threshold = 0.6

# 计算每列中90或99的占比(占总行数的比例)
missing_ratio = data.apply(lambda col: ((col == 90) | (col == 99)).mean())

# 保留占比低于阈值的列,删除超标列
data = data.loc[:, missing_ratio < threshold]

说明:

  • apply(lambda col: ...)遍历DataFrame的每一列
  • (col == 90) | (col == 99)生成布尔序列,标记列中等于90或99的位置
  • mean()计算布尔序列的均值,即缺失值(90/99)在列中的占比
  • loc[:, missing_ratio < threshold]筛选出占比低于阈值的列,更新原DataFrame

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:57:24