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

import os
import pandas as pd

os.chdir(r"D:\pycharm程序文件\练习1")
data = pd.read_excel("data.xlsx")

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() # 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 = data.iloc[:,17]
print(data1.count())

"""



















  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值