DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)
value: scalar, dict, Series, or DataFrame
ffill | 用前面的值填充 |
bfill | 用后面的值填充 |
#使用特定值填充缺失值
import pandas as pd
data=pd.read_excel("D:/处理缺失值.xlsx",index_col='序号')
print(data)
print('-'*40)
#填充缺失值
#1.使用常数填充
print(data.fillna(0,inplace=False))
print('-'*40)
#2.使用字典填充
print(data.fillna({'语文':'60.0','数学':'60.0','英语':'60.0'},inplace=False))
#3.使用前面的值填充
print('-'*40)
print(data.fillna(method='ffill',inplace=False))
#4.使用后面的值进行填充
print('-'*40)
print(data.fillna(method='bfill',inplace=False))
#限制填充数量
print('-'*40)
print(data.fillna(method='ffill',inplace=False,limit=1))
#统计函数
print('-'*40)
print(data.describe())
#直接查看数据
print('-'*40)
print(data['语文'].describe())
print('-'*40)
print(data['语文'].mean())
print('-'*40)
print(data['语文'].count())
print('-'*40)
print(data['语文'].max())
print('-'*40)
print(data['语文'].min())
print('-'*40)
print(data['语文'].std())
运行结果:
D:\Python\p\Scripts\python.exe "D:\Python\python-learning\数据分析(二)\处理缺失值二.py"
姓名 语文 数学 英语
序号
1 李晓华 87.0 NaN 98.0
2 于建委 NaN 86.0 99.0
3 张扬 73.0 77.0 98.0
4 赵琳 NaN 65.0 87.0
5 何宇 89.0 88.0 NaN
6 王志宏 NaN 100.0 100.0
----------------------------------------
姓名 语文 数学 英语
序号
1 李晓华 87.0 0.0 98.0
2 于建委 0.0 86.0 99.0
3 张扬 73.0 77.0 98.0
4 赵琳 0.0 65.0 87.0
5 何宇 89.0 88.0 0.0
6 王志宏 0.0 100.0 100.0
----------------------------------------
姓名 语文 数学 英语
序号
1 李晓华 87.0 60.0 98.0
2 于建委 60.0 86.0 99.0
3 张扬 73.0 77.0 98.0
4 赵琳 60.0 65.0 87.0
5 何宇 89.0 88.0 60.0
6 王志宏 60.0 100.0 100.0
----------------------------------------
姓名 语文 数学 英语
序号
1 李晓华 87.0 NaN 98.0
2 于建委 87.0 86.0 99.0
3 张扬 73.0 77.0 98.0
4 赵琳 73.0 65.0 87.0
5 何宇 89.0 88.0 87.0
6 王志宏 89.0 100.0 100.0
----------------------------------------
姓名 语文 数学 英语
序号
1 李晓华 87.0 86.0 98.0
2 于建委 73.0 86.0 99.0
3 张扬 73.0 77.0 98.0
4 赵琳 89.0 65.0 87.0
5 何宇 89.0 88.0 100.0
6 王志宏 NaN 100.0 100.0
----------------------------------------
D:\Python\python-learning\数据分析(二)\处理缺失值二.py:36: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.
print(data.fillna(method='ffill',inplace=False))
D:\Python\python-learning\数据分析(二)\处理缺失值二.py:39: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.
print(data.fillna(method='bfill',inplace=False))
D:\Python\python-learning\数据分析(二)\处理缺失值二.py:42: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.
print(data.fillna(method='ffill',inplace=False,limit=1))
姓名 语文 数学 英语
序号
1 李晓华 87.0 NaN 98.0
2 于建委 87.0 86.0 99.0
3 张扬 73.0 77.0 98.0
4 赵琳 73.0 65.0 87.0
5 何宇 89.0 88.0 87.0
6 王志宏 89.0 100.0 100.0
----------------------------------------
语文 数学 英语
count 3.000000 5.000000 5.000000
mean 83.000000 83.200000 96.400000
std 8.717798 13.065221 5.319774
min 73.000000 65.000000 87.000000
25% 80.000000 77.000000 98.000000
50% 87.000000 86.000000 98.000000
75% 88.000000 88.000000 99.000000
max 89.000000 100.000000 100.000000
----------------------------------------
count 3.000000
mean 83.000000
std 8.717798
min 73.000000
25% 80.000000
50% 87.000000
75% 88.000000
max 89.000000
Name: 语文, dtype: float64
----------------------------------------
83.0
----------------------------------------
3
----------------------------------------
89.0
----------------------------------------
73.0
----------------------------------------
8.717797887081348
进程已结束,退出代码为 0