如何在Pandas中将-1替换为年龄均值?解决替换结果为0的问题
解决方法
问题根源
计算年龄均值时未排除值为-1的记录,导致-1被纳入均值计算,最终拉低均值甚至变为0。
修正步骤
- 先过滤无效值再算均值
只统计年龄列中不等于-1的行来计算均值:age_mean = df[df['年龄'] != -1]['年龄'].mean() - 替换-1为正确均值
用两种方式都可以实现替换:# 方式1:使用replace方法 df['年龄'] = df['年龄'].replace(-1, age_mean) # 方式2:布尔索引定位替换 df.loc[df['年龄'] == -1, '年龄'] = age_mean
完整示例代码
import pandas as pd # 读取数据集(根据你的实际读取方式调整) df = pd.read_csv('your_data.csv') # 计算排除-1后的年龄均值 age_mean = df[df['年龄'] != -1]['年龄'].mean() # 替换所有-1为均值 df['年龄'] = df['年龄'].replace(-1, age_mean) # 验证结果 print(df['年龄'].value_counts())
内容的提问来源于stack exchange,提问作者Meme
相关产品推荐
相关产品推荐

