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

如何用Python/Pandas按IMDB Score分组求均值填充Meta Score空值?

按IMDB Score分组填充Meta Score空值

核心思路

针对Meta Score的空值,按IMDB Score分组,用同组内非空Meta Score的均值填充,而非全局均值。

示例代码实现

1. 构造测试数据

先模拟你的电影数据集:

import pandas as pd
import numpy as np

data = {
    '电影': ['A', 'B', 'C', 'D', 'E'],
    'IMDB Score': [7, 8, 8, 8, 8],
    'Meta Score': [75, 82, 85, np.nan, 88]
}
df = pd.DataFrame(data)

2. 方法一:用groupby + transform快速填充

transform会为每行返回对应IMDB分组的Meta Score均值,直接配合fillna使用:

# 生成每行对应的IMDB分组Meta Score均值
group_mean = df.groupby('IMDB Score')['Meta Score'].transform('mean')
# 填充空值
df['Meta Score'] = df['Meta Score'].fillna(group_mean)

3. 方法二:先预计算分组均值字典,再映射填充

如果需要更清晰的分组逻辑,先计算每个IMDB Score对应的均值字典,再通过映射填充:

# 计算每个IMDB分组的Meta Score均值,转为字典
mean_dict = df.groupby('IMDB Score')['Meta Score'].mean().to_dict()
# 对空值行,用IMDB Score匹配字典中的均值填充
df['Meta Score'] = df['Meta Score'].fillna(df['IMDB Score'].map(mean_dict))

效果验证

运行代码后,电影D的Meta Score会被填充为IMDB=8分组的均值(82+85+88)/3=85,最终结果如下:

电影IMDB ScoreMeta Score
A775.0
B882.0
C885.0
D885.0
E888.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:20:39