当前位置: 代码网 > it编程>前端脚本>Python > pandas读取excel统计空值数量错误的解决方法

pandas读取excel统计空值数量错误的解决方法

2024年05月15日 Python 我要评论
问题:pd.read_excel()读取excel数据后,用pd.isnull().sum()统计空值数量不对,代码如下import pandas as pddf = pd.read_excel('t

问题: pd.read_excel()读取excel数据后,用pd.isnull().sum()统计空值数量不对,代码如下

import pandas as pd

df = pd.read_excel('test.xlsx',dtype=str)
# 剔除空格
df = df.applymap(lambda x : str(x).strip())
print("b列为空的个数为"+ str(pd.isnull(df['b']).sum())) # 打印出来b列中为空的是0个

excel数据长这样,b2是一个空格,希望得到空值为2的结果

在这里插入图片描述

问题分析:

读取excel后的df是这样

在这里插入图片描述

使用applymap剔除空格后的df是这样

在这里插入图片描述

读取excel后的df的值(df.values)

在这里插入图片描述

使用applymap剔除空格后的df的值(df.values)

在这里插入图片描述

可以看到,在applymap方法处理后

值values的变化:一个空格变成了’’,之前的nan变成了’nan’(这里是字符串nan,当然不为空)

pd.isnull()只会统计nan的数量,一个是字符串’‘,一个是字符串’nan’,因此都统计不到

解决: 将’'和’nan’全部替换为np.nan,isnull就可以统计到

import numpy as np
import pandas as pd

df = pd.read_excel('test.xlsx',dtype=str)
# 剔除空格
df = df.applymap(lambda x : str(x).strip())
df[df == ''] = np.nan
df[df == 'nan'] = np.nan
print("b列为空的个数为"+ str(pd.isnull(df['b']).sum())) # 打印出来b列中为空的是2个

到此这篇关于pandas读取excel统计空值数量错误的解决方法的文章就介绍到这了,更多相关pandas读取excel空值内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com