📌  相关文章
📜  用平均值填充 pandas 列中的缺失值 - Python (1)

📅  最后修改于: 2023-12-03 15:40:55.389000             🧑  作者: Mango

用平均值填充 pandas 列中的缺失值 - Python

在数据分析和处理中,常常会遇到数据缺失的情况。为了避免影响后续分析和模型的建立,需要对缺失值进行处理。其中,一种常见的处理方式就是用平均值来填充缺失值。在 Python 中,可以使用 pandas 库来处理缺失值。

1. 导入 pandas 库

首先,需要导入 pandas 库:

import pandas as pd
2. 创建 DataFrame

假设有如下数据:

| 姓名 | 年龄 | 性别 | 成绩 | | ---- | ---- | ---- | ---- | | 张三 | 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
3. 用平均值填充缺失值

可以使用 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

可以看到,缺失的年龄和成绩分别被填充为了对应列的平均值。

4. 总结

用平均值来填充缺失值是一种简单有效的处理方式,可以保证数据集的完整性。在 Python 中,可以使用 pandas 库来实现该操作。需注意,在对 DataFrame 进行操作时,使用了 inplace=True 参数,表示直接修改原 DataFrame,不返回新的 DataFrame。