【数据处理】pandas 统计每列缺失值和空字符串处理

本文讲述了在使用Pandas处理数据时,遇到isnull()函数对空字符串识别失效的问题,解释了空字符串与缺失值的差异,并提供了将空字符串转换为np.nan以使isnull()正常工作的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个学习爬虫和数据处理分析的20岁秃顶码农

数据处理分析日常不可缺少的会使用pandas统计每一列空值的总数,但在统计的时候总是会遇见各种奇怪的情况,比如下列这种明明看上去是有空值的,但使用函数统计的结果就是有问题
图1

统计每一列有多少缺失值

在pandas中,有一个isnull()函数,它是用于判断缺失值的,当我们将它和sum()函数结合在一起时,便可以统计出每一列的缺失值。

df = pd.read_csv("20231109.csv")
print(df.isnull().sum())

图2

isnull()失效了?

当然,有时候我们使用isnull()时会出现第一张图那样的情况,明明数据看上去就是空的,但使用isnull()返回的却是0,难道出现bug了?这个时候请务必检查一下!一定要检查一下!生成df的原始数据里面是不是存在空字符串。
要知道空字符串看上去和缺失值是一样的,但他们是存在本质区别的。
如果要统计缺失值,同时也要统计空字符串该怎么办呢?这个时候就可以使用df.replace将空字符串转为nan。

import numpy as np
df.replace(to_replace="^\s*$",value=np.nan,regex=True,inplace=True)
// 或者
df.replace(to_replace="",value=np.nan,regex=True,inplace=True)

这两个都可以将空字符串转为nan,从而使得isnull()生效,这样就可以解决因为空字符串导致的isnull()失效的问题了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值