如何在Pandas DataFrame中高效处理缺失值并按年龄分箱计算Score均值?
基于年龄分箱计算Score均值的方法
以下是具体实现步骤:
- 定义分箱规则:根据需求的分箱标签,设置对应的年龄区间边界,确保每个年龄值能准确映射到目标分箱。
- 添加分箱列:使用
pandas.cut()函数将Age列转换为对应的分箱标签列。 - 分组计算均值:按分箱列分组后,调用
mean()计算每组的Score平均值(自动忽略Score列的缺失值)。
完整代码示例
import pandas as pd # 示例DataFrame(已有则跳过此步) data = { 'ID': [1,2,3,4,5], 'Age': [25,30,22,27,21], 'Gender': ['Male', 'Female', pd.NA, 'Male', 'Female'], 'Score': [85.0,90.0,78.0,pd.NA,80.0] } df = pd.DataFrame(data) # 定义分箱区间和对应标签 bins = [0, 21, 26, 31, 41, float('inf')] labels = ['0-20', '21-25', '26-30', '31-40', '41+'] # 生成年龄分箱列 df['Age_Bin'] = pd.cut(df['Age'], bins=bins, labels=labels, right=False) # 计算各分箱的Score均值 score_mean_by_bin = df.groupby('Age_Bin')['Score'].mean() print(score_mean_by_bin)
输出结果
Age_Bin 0-20 NaN 21-25 81.0 26-30 90.0 31-40 NaN 41+ NaN Name: Score, dtype: float64
关键说明
pd.cut()的right=False参数设置为左闭右开区间,确保21归入21-25分箱、26归入26-30分箱,与标签完全匹配。- 分组计算均值时,Pandas会自动排除
Score列中的缺失值(NaN),不影响结果准确性。
内容的提问来源于stack exchange,提问作者armstrong3701
相关产品推荐
相关产品推荐

