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

如何从CSV读取数据后用pandas的groupby按年份分组DataFrame?

问题分析与解决

你的代码存在两个关键错误,导致分组操作未达到预期效果:

  • 分组键错误:你需要按**年份(year)**分组,但代码中写的是df.groupby('price'),误用了价格列作为分组依据
  • 未执行聚合操作:groupby()仅生成一个GroupBy分组容器,不会修改原DataFrame,也不会直接输出有效分组结果,必须配合聚合或遍历操作才能得到有意义的输出

正确实现方式

1. 分组+聚合统计(常用场景)

读取CSV后,按year分组,搭配聚合函数(如mean/sum/count)生成统计结果:

import pandas as pd

# 读取CSV,仅保留price和year列
df = pd.read_csv('data.csv', usecols=['price', 'year'])

# 按年份分组,计算每年的平均价格
yearly_avg_price = df.groupby('year')['price'].mean()
print(yearly_avg_price)

# 同时计算多个统计指标(总价格、数据条数、平均价格)
yearly_stats = df.groupby('year')['price'].agg(['sum', 'count', 'mean'])
print(yearly_stats)

2. 查看分组后的原始数据

如果需要查看每个年份对应的原始明细数据,可以遍历GroupBy对象:

import pandas as pd

df = pd.read_csv('data.csv', usecols=['price', 'year'])

# 遍历每个年份的分组数据
for year, group in df.groupby('year'):
    print(f"=== 年份: {year} ===")
    print(group)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 08:35:18