Pandas基础之缺失值填充及相关统计函数的使用

本文介绍了如何使用Pandas库中的fillna方法来处理DataFrame中的缺失值,包括使用常数、字典、前后值填充以及限制填充次数。还展示了统计函数如描述性统计在处理缺失值时的应用。
摘要由CSDN通过智能技术生成

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

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值