wangxishi

2020-09-04   阅读量: 10192

Python 大数据

python统计每列缺失值

扫码加入数据分析学习群

2.xlsx

python查询出结果后怎么快速统计每列缺失值?每列不管是字符,数值,日期都要统计出为空的个数,或者统计处有值的个数也可以

41.2855 3 17 关注作者 收藏

评论(17)

ermutuxia
2020-09-09

测试

0.0000 0 0 回复
coohua
2020-09-07

1599466777_982532.png

0.0000 0 0 回复
coohua
2020-09-07

3156257312-56761eb64bbfc.png

0.0000 0 0 回复
wangxishi
2020-09-07

原始数据里面应该没有空格,因为我导出的数据没有做过任何修改,再导入到自己的python里面就可以统计出来了

0.0000 0 0 回复
s1223452840
2020-09-07

恐怕是数据库和python对空缺值得定义不一样,看一下原始数据是不是里面有空格什么的

32.4776 1 0 回复
wangxishi
2020-09-07

import psycopg2 as pg

import pandas as pd

import numpy as np

import zipfile

import os

import sys

pd.set_option('display.max_columns',None)

pd.set_option('display.max_rows',None)

conn = pg.connect("dbname=%s user=%s password=%s host=%s port=%s" %('gpdw', 'dm_mtgg','A&eXbDuM7OiGz9BilS9X','gp-wz9q87z01t1bu4fv6.gpdb.rds.aliyuncs.com','3432'))

n_cursor = conn.cursor()

datat=pd.read_sql(sql='''select

* from dm_mtgg_fk_g7_credit


''',con=conn)

datat

datat.oil6mpercard.isnull().sum()

这段代码最后显示统计缺失值为2,但是明显缺失值不止2个

如图:

1.png

0.0000 0 0 回复
s1223452840
2020-09-07

你把你统计为零的全部代码文件,包括连接数据库时的,发我一下?

32.4776 1 0 回复
wangxishi
2020-09-07

我把我的文件重新导入自己的python统计缺失值就正常了,为什么python连数据库的时候生成的数据这列统计缺失值就是0 呢

0.0000 0 0 回复
wangxishi
2020-09-07

这是我的代码:data2['oil6mpercard'].isnull().sum(axis=0),因为我导入表以后名字是data2,显示出来结果还是0,但是这一列都是空值呀

0.0000 0 0 回复
s1223452840
2020-09-05

image.png

72.4018 1 0 回复
s1223452840
2020-09-05

同学,我这边显示的是 正确 的 , 结果是 10 ,我看不清你发的图片,你把你的代码发我一下 , 我的代码如下:

import pandas as pd


# 首先导入数据

df = pd.read_excel(r'C:\Users\12234\Desktop\1599213090_256378.xlsx')

df.head()


# 统计某一列的缺失值

df['oil6mpercard'].isnull().sum(axis=0)


0.0000 0 0 回复
wangxishi
2020-09-05

为什么我这个oil6mpercard列显示空值为0呢,oil6mpercard明明全部是空值呀,如图

1.png

0.0000 0 0 回复
s1223452840
2020-09-04

import pandas as pd

# 首先导入数据
df = pd.read_excel('1599213090_256378.xlsx')
df.head()

# 统计某一列的缺失值
df['firstgpsdate'].isnull().sum(axis=0)


0.0000 0 0 回复
s1223452840
2020-09-04

image.png

0.0000 0 0 回复
wangxishi
2020-09-04

像这种字符串的两列:

oil6mpercard全是空的,但是统计出来空值是0;

etc6mpercar有空值,但是统计出来空值是0;

这是什么原因呢

1.png

0.0000 0 0 回复
wangxishi
2020-09-04

现在这个就是用pandas模块下的最简单的方法了吗

0.0000 0 0 回复
s1223452840
2020-09-04

image.png

0.0000 0 0 回复
s1223452840
2020-09-04

可以使用下面两行代码查看统计整个数据的缺失值

data.isnull().sum()

print(data.isnull().sum())

#想只显示某一列的缺失值数量:

data.列名.isnull().sum()

print(data.列名.isnull().sum())



建议你使用pandas模块,有更多好用的方法


41.2855 1 0 回复

推荐课程

推荐帖子