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

Pandas DataFrame按行分组求均值:代码未获预期输出求助

按分组求均值的正确实现方法

你当前的代码data=df.groupby('Term')['Subject'].apply(tuple)是把每个分组内的Subject列值打包成元组,和求均值的需求完全不匹配,这就是得不到预期结果的核心原因。以下是针对不同场景的正确实现方式:

场景1:对单一数值列求均值

如果Subject是数值类型,直接通过groupby后调用mean()方法即可:

data = df.groupby('Term')['Subject'].mean()

场景2:对分组内所有数值列求均值

如果需要计算每个分组下所有数值列的均值,无需指定单列:

data = df.groupby('Term').mean()

场景3:处理非数值列或自定义均值逻辑

如果Subject是非数值类型(比如字符串格式的数字),需要先转换类型再计算均值:

import pandas as pd
data = df.groupby('Term')['Subject'].apply(lambda x: pd.to_numeric(x, errors='coerce').mean())

排查数据类型问题

如果执行后仍无正确结果,先检查Subject列的数据类型是否为数值:

print(df['Subject'].dtype)
# 若为object类型,先转换为数值
df['Subject'] = pd.to_numeric(df['Subject'], errors='coerce')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:45:23