pandas dataframe统计填充空值大全
1.判断dataframe是否有空值
def t2():df = pd.DataFrame({'name': ['lili', 'lucy','pegga','alin',np.nan],'age': [18, 16, np.nan, 23, np.nan],'salary': [np.nan, 300, np.nan, 1000, 800]})df_contains_nan = df.isnull()print(df_contains_nan)df_contains_nan_2 = df.isna()print(df_contains_nan_2)
上面的代码将输出
name age salary
0 False False True
1 False False False
2 False True True
3 False False False
4 True True Falsename age salary
0 False False True
1 False False False
2 False True True
3 False False False
4 True True False
isnull,isna方法都是判断df中的元素是否为空,然后输出True/False。
要判断df中是否有空元素,只需要稍加改变
def t3():df = pd.DataFrame({'name': ['lili', 'lucy','pegga','alin',np.nan],'age': [18, 16, np.nan, 23, np.nan],'salary': [np.nan, 300, np.nan, 1000, 800]})contains_nan = df.isnull().values.any()print(contains_nan)
any方法只要ndarray中有任意一个元素为True就返回True。
def any(self, axis=None, out=None, keepdims=False): # real signature unknown; restored from __doc__"""a.any(axis=None, out=None, keepdims=False)Returns True if any of the elements of `a` evaluate to True.Refer to `numpy.any` for full documentation.See Also--------numpy.any : equivalent function"""pass
2.统计空值个数
def t4():df = pd.DataFrame({'name': ['lili', 'lucy','pegga','alin',np.nan],'age': [18, 16, np.nan, 23, np.nan],'salary': [np.nan, 300, np.nan, 1000, 800]})# 每一列有多少个nannan_column = df.isnull().values.astype(int).sum(axis=0)# 各列的nan个数nan_column_name = df.isnull().sum()print(nan_column)print('*'*10)print(nan_column_name)print('*'*10)# nan的总个数nan_all = df.isnull().sum().sum()print(nan_all)
[1 2 2]
**********
name 1
age 2
salary 2
dtype: int64
**********
5
上面的代码,展示了统计每行/列空值的个数,以及所有空值的个数。
3.按列填充空值
def t5():df = pd.DataFrame({'name': ['lili', 'lucy','pegga','alin',np.nan],'age': [18, 16, np.nan, 23, np.nan],'salary': [np.nan, 300, np.nan, 1000, 800]})print(df)df.name = df.name.fillna('unknown')df.age = df.age.fillna(df.age.mean())df.salary = df.salary.fillna(df.salary.max())print(df)
name age salary
0 lili 18.0 NaN
1 lucy 16.0 300.0
2 pegga NaN NaN
3 alin 23.0 1000.0
4 NaN NaN 800.0name age salary
0 lili 18.0 1000.0
1 lucy 16.0 300.0
2 pegga 19.0 1000.0
3 alin 23.0 1000.0
4 unknown 19.0 800.0
上面的代码,分别对name, age, salary列按固定值,当前列平均值,当前列最大值填充。
fillna函数有inplace参数,下面代码的效果与之前填充一致。
def t52():df = pd.DataFrame({'name': ['lili', 'lucy','pegga','alin',np.nan],'age': [18, 16, np.nan, 23, np.nan],'salary': [np.nan, 300, np.nan, 1000, 800]})print(df)df.name.fillna('unknown', inplace=True)df.age.fillna(df.age.mean(), inplace=True)df.salary.fillna(df.salary.max(), inplace=True)print(df)
4.按分组平均值填充
def t6():df = pd.DataFrame({'level': ['A','A','A','A','B','B','B','B','C','C','C'],'score': [2,1,3,np.nan,4,6,5,np.nan,7,9,np.nan],})fun = lambda x: x.fillna(df.groupby('level').score.mean()[x.level])df = df.apply(lambda x: fun(x), axis=1)# 以下一行代码也可以实现相同功能#df = df.apply(lambda x: x.fillna(df.groupby('level').score.mean()[x.level]), axis=1)print(df)
上面的代码,将score按level分组的平均值填充。
fun传入一行数据,然后通过分组值来获取当前分组的平均值,最后利用fillna来填充这个平均值即可。
代码输出如下
level score
0 A 2.0
1 A 1.0
2 A 3.0
3 A 2.0
4 B 4.0
5 B 6.0
6 B 5.0
7 B 5.0
8 C 7.0
9 C 9.0
10 C 8.0
pandas dataframe统计填充空值大全相关推荐
- pandas dataframe 删除带空值的行 各种空值 (dropna()、isna()、isnull()、fillna())
假设拿到一个10万行的数据后,通过isnull我们发现某列有几个空值,要把该列空值所在行删除怎么操作?用dropna()会删除所有有空值的行,请看下面实例. 区分 None,null,NULL,nan ...
- pandas DataFrame.fillna()填充缺失函数的使用
1. Pandas中将如下类型定义为缺失值: NaN: '', '#N/A', '#N/A N/A', '#NA', '-1.#IND', '-1.#QNAN', '-NaN', '-nan', '1 ...
- pandas Dataframe统计缺失值占比
工具函数: def collect_na_value(dataframe):return dataframe.isna().sum() / dataframe.shape[0] * 100 案例 im ...
- 『Python核心技术与实战』pandas.DataFrame()函数介绍
pandas.DataFrame()函数介绍! 文章目录 一. 创建DataFrame 1.1. numpy创建 1.2. 直接创建 1.3. 字典创建 1.4. Series和DataFrame 二 ...
- CSV文件处理——填充空值
采用pandas中的fillna()方法 (pandas.DataFrame.fillna) 1.函数讲解: --------------------------------------------- ...
- pandas DataFrame 数据处理常用操作
Xgboost调参: https://wuhuhu800.github.io/2018/02/28/XGboost_param_share/ https://blog.csdn.net/hx2017/ ...
- pandas | DataFrame基础运算以及空值填充
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是pandas数据处理专题的第四篇文章,我们一起来聊聊DataFrame中的索引. 上一篇文章当中我们介绍了DataFrame数据结构当 ...
- Pandas+Numpy 数据中空值的处理操作:判断、查找、填充及删除
本文整理了数据中空值的处理操作,主要内容如下: 判断数据中是否有空值 统计空值/非空值数量 根据空值筛选数据 查找空值索引 删除空值 dropna()函数 填充空值fillna()函数 为了便于描述, ...
- Pandas数据处理1、DataFrame删除NaN空值(dropna各种属性值控制超全)
Pandas数据处理--渐进式学习 目录 Pandas数据处理--渐进式学习 前言 环境 DataFrame删除NaN空值 dropna函数参数 测试数据 删除所有有空的行 axis属性值 how属性 ...
- pandas dataframe缺失值(np.nan)处理:识别缺失情况、删除、0值填补、均值填补、中位数填补、加缺失标签、插值填充详解及实例
pandas dataframe缺失值(np.nan)处理:识别缺失情况.删除.0值填补.均值填补.中位数填补.加缺失标签.插值填充详解及实例 isnull().natna().isna().fill ...
最新文章
- Objective-c 网络编程1 Web请求和响应
- Msql的DML、DDL、DCL的区别
- ElasticSearch 2 (1) - Getting Start
- Codeforces 768E:Game of Stones
- 自学python需要买书吗-我的孩子需要学习Python吗?几岁开始学?有什么书籍推荐?...
- hdu 4496 并查集 逆向 并查集删边
- 牛客练习赛50 F tokitsukaze and Another Protoss and Zerg
- linux 模拟时序,stm32GPIO模拟时序读写nandflash(K9F1G08U0B)问题
- Qt奇淫技巧-使用QSharedMemory方式实现数据跨界面传输
- pg 事务 存储过程_PgpoolII实现数据分区存储及性能分析
- java xml接口实例_Java访问WebService接口方法 , 返回xml数据,能根据 下面的能给我写个实例吗?略急...
- ArcGIS API for Javascript之专题图的制作(四)热力图渲染(上)
- 删除oracle补丁包,最新Oracle关键补丁:更新包括248个修复
- BestMPRBaseVtk-003-修改工程,搬运官方代码并尝试理解-2
- dedecms友情链接plus/flink.php页面出错,DedeCMS友情链接flink_add Getshell漏洞管理员CSRF漏洞...
- 大数据NiFi(五):NiFi分布式安装
- mybatis的sql标签
- 软件测试工程师应该具备的素质---菜鸟的小想法
- 双十一好物怎么入手,五款双十一最值得入手的好物分享
- 2022年熔化焊接与热切割题库及模拟考试