python 表格中每一列的缺失值,缺失率计算
import os
import pandas as pd
os.chdir(r"D:\pycharm程序文件\练习1")
data = pd.read_excel("")
missing_value_list = [] # 填放每一列缺失值的个数
missing_rate_list = [] # 填放每一列的缺失率
for i in range(data.shape[1]): # 遍历所有的列; 循环次数为列的次数
data1 = data.iloc[:,i] # 用iloc[:,['列1','列2']] 依次从第0列索引到最后一列
missing_value = data.shape[0] - data1.count() # ()分别计算每一列的非空值
missing_value_list.append(missing_value) # 将缺失值个数添加到missing_value_list列表中
missing_rate = missing_value/data.shape[0] # 计算缺失率
missing_rate_list.append(missing_rate)
# print(missing_value_list)
# print(missing_rate_list)
# 将两个列表合并成字典
colunm_name = [] # 放置每一列索引名的列表;得出的结果是[ () ]形式; 需要手工删除(), 重新构建列表
# 将数据表格中每一列的标签输出构成列表[()]
for item in data.itertuples():
# 获取所有列标签
# print('获取所有列标签: ', item._fields)
colunm_name.append(item._fields)
break
# print(colunm_name)
new_colunm_name = ['保单号', '起保日期', '终止日期', '渠道', '品牌', '车系', '保单性质', '续保年',
'投保类别', '是否本省车牌', '使用性质', '车辆种类', '车辆用途', '新车购置价', '车龄',
'险种', 'NCD', '_18', '客户类别', '被保险人性别', '被保险人年龄', '是否投保车损',
'是否投保盗抢', '是否投保车上人员', '三者险保额', '签单保费', '立案件数', '已决赔款', '是否续保']
# 合并两个列表, 使输出结果形式为
for i in new_colunm_name:
for a in missing_rate_list:
print("{}缺失率={}".format(i,a))
break
print("/"*188)
for i in new_colunm_name:
for b in missing_value_list:
print("{}缺失值={}".format(i,b))
break
"""
data1 = [:,17]
print(())
"""