Python Pandas 计算dataframe某一列的空值和0值的个数

1. 计算空值个数

计算空值的个数,采用pandas中的isnull()函数,它可以直接判断每一个数据知否是空值,返回的是bool变量,继而df.isnull().sum()即可判断每一列的空值总数。如下代码所示。

input_file = "E:\\attr.csv"
df = pd.read_csv(input_file, header=0, encoding='utf-8')

print(df.isnull().sum())

返回结果是pandas.core.series.Series,左边是列的名称,右侧是空值的个数。可根据需要进行数值提取。

value                   0
source                  0
target                  0
from                    0
to                      0
交通运输、仓储和邮政业         27462
住宿和餐饮业              29064
信息传输、软件和信息技术服务业     26912
农、林、牧、渔业            27081
制造业                 26259
卫生和社会工作             30995
居民服务、修理和其他服务业       25838
建筑业                 26788
房地产业                28147
批发和零售业              29278
教育                  30603
文化、体育和娱乐业           28013
水利、环境和公共设施管理业       30279
电力、热力、燃气及水生产和供应业    28874
科学研究和技术服务业          27287
租赁和商务服务业            28018
采矿业                 34193
金融业                 28316
dtype: int64
2. 计算零值的个数

零值的计算采用了条件判断,如下所示,

input_file = "E:\\attr.csv"
df = pd.read_csv(input_file, header=0, encoding='utf-8')

for col in list(df.columns):
    zero = len(df[df[col] == 0])
    print('%s, 零值:%d' % (col, zero))

输出结果如下:

value, 零值:0
source, 零值:0
target, 零值:0
from, 零值:0
to, 零值:0
交通运输、仓储和邮政业, 零值:2831
住宿和餐饮业, 零值:4167
信息传输、软件和信息技术服务业, 零值:2071
农、林、牧、渔业, 零值:3005
制造业, 零值:343
卫生和社会工作, 零值:7125
居民服务、修理和其他服务业, 零值:2662
建筑业, 零值:2083
房地产业, 零值:5169
批发和零售业, 零值:849
教育, 零值:7870
文化、体育和娱乐业, 零值:1613
水利、环境和公共设施管理业, 零值:6225
电力、热力、燃气及水生产和供应业, 零值:7863
科学研究和技术服务业, 零值:1443
租赁和商务服务业, 零值:895
采矿业, 零值:8976
金融业, 零值:1484

应该是有更简单的方法,以后学习到了再补充,目前用这个就够了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容