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

如何在pandas DataFrame中计算各年份平均User Rating并找出最高值年份

计算平均用户评分最高年份的实现方法

你可以直接用Pandas内置的groupby聚合方法完成需求,不需要手动遍历唯一年份,代码更简洁执行效率也更高:

最优实现方案

import pandas as pd
import numpy as np

# 先修正你之前代码的小问题:df.['Year']多了多余的点,正确写法为df['Year']
# 1. 按Year分组,计算每组User Rating的平均值
year_avg_rating = df.groupby('Year')['User Rating'].mean()

# 2. 直接获取平均评分最高的年份和对应评分
max_rating_year = year_avg_rating.idxmax()
max_rating = year_avg_rating.max()

print(f"平均评分最高的年份:{max_rating_year},对应平均评分:{max_rating:.2f}")

如果你需要先查看所有年份的平均评分排序,可以追加以下代码:

# 按平均评分降序输出所有年份的统计结果
sorted_year_rating = year_avg_rating.sort_values(ascending=False)
print(sorted_year_rating)

备选方案(沿用你现有的唯一年份列表逻辑)

如果你要沿用你已经拿到的唯一年份列表的思路手动遍历计算,可以用以下代码实现:

import numpy as np

years = df['Year'].unique()
years = np.sort(years)

year_rating_dict = {}
for y in years:
    # 筛选当前年份的所有User Rating记录,计算均值
    current_avg = df[df['Year'] == y]['User Rating'].mean()
    year_rating_dict[y] = current_avg

# 从字典中取出值最大的键(即平均评分最高的年份)
max_rating_year = max(year_rating_dict, key=year_rating_dict.get)
max_rating = year_rating_dict[max_rating_year]

注意事项

Pandas的mean()方法默认会自动忽略NaN空值,不需要额外做空值过滤;如果你需要排除空值记录后再统计,可以提前执行df = df.dropna(subset=['User Rating', 'Year'])做数据清洗。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:36:03