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
应该是有更简单的方法,以后学习到了再补充,目前用这个就够了。