python 表格中每一列的缺失值,缺失率计算

时间:2025-02-10 18:56:49
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(()) """