📅  最后修改于: 2023-12-03 15:40:55.389000             🧑  作者: Mango
在数据分析和处理中,常常会遇到数据缺失的情况。为了避免影响后续分析和模型的建立,需要对缺失值进行处理。其中,一种常见的处理方式就是用平均值来填充缺失值。在 Python 中,可以使用 pandas 库来处理缺失值。
首先,需要导入 pandas 库:
import pandas as pd
假设有如下数据:
| 姓名 | 年龄 | 性别 | 成绩 | | ---- | ---- | ---- | ---- | | 张三 | 20 | 男 | 80 | | 李四 | 22 | 女 | NaN | | 王五 | NaN | 男 | 90 | | 赵六 | 18 | 女 | 70 |
可以使用 pandas 创建 DataFrame:
df = pd.DataFrame({'姓名': ['张三', '李四', '王五', '赵六'],
'年龄': [20, 22, None, 18],
'性别': ['男', '女', '男', '女'],
'成绩': [80, None, 90, 70]})
print(df)
输出为:
姓名 年龄 性别 成绩
0 张三 20.0 男 80.0
1 李四 22.0 女 NaN
2 王五 NaN 男 90.0
3 赵六 18.0 女 70.0
可以使用 DataFrame 的 mean()
方法求出每列的平均值,并使用 fillna()
方法将缺失值填充为对应列的平均值:
avg_age = df['年龄'].mean()
avg_score = df['成绩'].mean()
df['年龄'].fillna(avg_age, inplace=True)
df['成绩'].fillna(avg_score, inplace=True)
print(df)
输出为:
姓名 年龄 性别 成绩
0 张三 20.0 男 80.000000
1 李四 22.0 女 80.000000
2 王五 20.0 男 90.000000
3 赵六 18.0 女 70.000000
可以看到,缺失的年龄和成绩分别被填充为了对应列的平均值。
用平均值来填充缺失值是一种简单有效的处理方式,可以保证数据集的完整性。在 Python 中,可以使用 pandas 库来实现该操作。需注意,在对 DataFrame 进行操作时,使用了 inplace=True
参数,表示直接修改原 DataFrame,不返回新的 DataFrame。