1.计算空缺率

mark一下pandas.shape()的用法

print("表格尺寸 = {}".format(data.shape)) # 计算表格行列数
#print(data.shape[0]) # 计算行的个数
#print(data.shape[1]) # 计算列的个数

计算若干行的空缺率

先在数据excel中第一行搞一个header,用来索引;下面代码以2:7列为例

import os
import pandas as pd
import numpy as npos.chdir(r"E:\MCM\2016\2016ProblemCDATA")
data = pd.read_excel("data1.xlsx",header = 0)print("表格尺寸 = {}".format(data.shape)) # 计算表格行列数for i in range(2,8):# 查看某 一/多 列的缺失值isnull()missing_value = data[i].isnull().sum()missing_rate = missing_value/data[i].shape[0]print("col:%d"%i)print("missing_value = %d"%missing_value)print('missing_rate = {}'.format(missing_rate))

2.拉格朗日法插补空缺值

import pandas as pd #导入pandas库
from scipy.interpolate import lagrange #导入拉格朗日函数inputfile = u'E:\\MCM\\2016\\2016ProblemCDATA\\data1.xlsx'
outputfile = u'E:\\MCM\\2016\\2016ProblemCDATA\\data2.xlsx'data= pd.read_excel(inputfile)
data[u'count'][(data[u'count']<100000) | (data[u'count']>200000)] = None #将异常值清空def ployinterp_column(s,n,k=2): #k=2表示用空值的前后两个数值来拟合曲线,从而预测空值y = s[list(range(n-k,n)) + list(range(n+1,n+1-k))] #取值,range函数返回一个左闭右开([left,right))的序列数y = y[y.notnull()]#取上一行中取出数值列表中的非空值,保证y的每行都有数值,便于拟合函数return lagrange(y.index,list(y))(n) #调用拉格朗日函数,并添加索引for i in data.columns: #如果i在data的列名中,data.columns生成的是data的全部列名for j in range(len(data)): #len(data)返回了data的长度,若此长度为5,则range(5)会产生从0开始计数的整数列表if (data[i].isnull())[j]:#如果data[i][j]为空,则调用函数ployinterp_column为其插值data[i][j] = ployinterp_column(data[i],j)data.to_excel(outputfile) #将完成插值后的data写入excel
print("拉格朗日法插补完成,插补后的文件位于:"+str(outputfile))

代码使用的过程中遇到两个问题

2.1TypeError: Can

not cast array data from dtype('float64') to dtype('U32') according to the rule '

原因:

‘U32’和‘S32’都表示numpy数组是一个字符串数组,而不是数字数组。numpy数组中,只要有一项是字符,返回的类型都是字符串数组。

解决办法:

检查数据,把字符串数组换成数字或空值即可。

2.2A value is trying to be set on a copy of a slice from a DataFrame

原因:

在python中默认的切片数据类型是“只读不能写”的,就比如生物实验中的切片,仅供观赏,而使用loc函数定位到的是原dataframe中的列,所以可修改。

See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy

解决办法:

只不过是个warning,不影响程序跑 ;p

2.3"None of [Int64Index([-2, -1], dtype='int64')] are in the [index]"

原因:

经过艰苦的试错,我发现是因为存在某列数据开头前k个数据有空值,可能这就是lagrange函数的缺陷吧

解决办法:

调整数据,使满足前k个数据不要有空值

ps:同学用matlab插补缺失值是真的容易/(ㄒoㄒ)/~~

python处理空缺值相关推荐

  1. 07 ,pandas 基本使用 :读数据,查看数据,数据类型,帮助,列名,数据形状,数据计算,,填补空缺值

    1 ,pandas 主要作用 : 数据分析 2 ,pandas 底层 : numpy 3 ,数据准备 : 食品信息 文件名 : food_info.csv 文件地址 : 链接:https://pan. ...

  2. 数据去重 填补空缺值(拉格朗日)

    此时我是不是该喊一声"我胡汉三又回来啦!!!" 这篇博客容许我摸一下数据清洗的裤脚...... 1.首先. 这是在网上找的数据,一个心脏病的数据集,英文不好的默默打开翻译,被我悄悄 ...

  3. python 函数返回值的特殊情况

    今天没事和大家一起聊聊python 函数返回值的特殊情况,之前我也碰到过类似方面的问题,到后来查阅了一些资料后,发现原来是这样! 我记得很久以前和大家聊过python列表操作方法,python列表非 ...

  4. python小课骗局-python小课值吗

    Python小课其实是风变编程旗下的Python课.课程更像一个「闯关游戏」,让每个小白学员学编程越学越上瘾. 个人感觉还行,刚学完了他们的爬虫课程.(推荐学习:Python视频教程) 之前机缘巧合在 ...

  5. pythondict增加-python字典键值对的添加和遍历方法

    添加键值对 首先定义一个空字典 >>> dic={} 直接对字典中不存在的key进行赋值来添加 >>> dic["name"]="zh ...

  6. python 曲线分析_大数据分析之Python计算KS值并绘制KS曲线

    本篇教程探讨了大数据分析之Python计算KS值并绘制KS曲线,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入. python实现KS曲线,相关使用方法请参考上篇博客-R语言实现K ...

  7. python输出键值列表_Python 键值分组或分区数据

    Python 使用键值分组或者分区数据,对分组后的数据做何种归约是没有限制的.数据中可能包含一些自变量或者因变量.可以通过自变量对数据进行分区,然后计算每个分区的各项汇总值,包括最大值.最小值.平均值 ...

  8. python方向键键值_python字典键值对的添加和遍历方法

    添加键值对 首先定义一个空字典 >>> dic={} 直接对字典中不存在的key进行赋值来添加 >>> dic['name']='zhangsan' >> ...

  9. python字典键值对转化为相应的变量名和变量值

    将python字典键值对转化为相应的变量名和变量值可以使用以下方法: globals().update({"name":"value"}) locals().u ...

最新文章

  1. 阿里将AI引入时尚界,消费者会对程序员的审美买账吗?
  2. DOM对象与jquery对象有什么不同
  3. Android开发工具——ADB(Android Debug Bridge) 一概览
  4. 【转】C51中断函数的写法
  5. 软件评测师考试内容纲要
  6. 程序员到底是吃青春饭还要奋斗?那么行业前景又如何?
  7. 【论文笔记】RETHINKING NETWORK DESIGN AND LOCAL GEOMETRY IN POINT CLOUD: A SIMPLE RESIDUAL MLP FRAMEWORK
  8. The connection to adb is down, and a severe error has occured.问题解决
  9. 20以内的加减法辅导
  10. RMAN备份数据库_为长期存储做数据库备份(归档备份,Archival Backup)
  11. IEduChina2019国际学校展暨国际教育论坛温暖深圳
  12. 一些RJS资源和演示入门教程
  13. (二)、JavaScript页面访问记录(History 对象)
  14. windows2008R2标准版在线升级至企业版
  15. 给iOS开发者的Sketch入门教程
  16. 88、基于STM32单片机的指纹考勤机指纹识别签到系统设计
  17. Power BI 之 DAX语法规范详解1
  18. mysql 全连接_MySQL全连接(Full Join)实现,union和union all用法
  19. 软件测试基础知识(二)------------等价类划分法、边界值分析法、场景法、错误推测法、bug定义/类型/优先级/生命周期/跟踪管理
  20. JavaScript - 京东放大镜效果:鼠标移动查看图片放大细节

热门文章

  1. linux系统备份及还原
  2. 大一计算机基础实用教程四川传媒学院,四川传媒学院
  3. linux下安装数据库提示/tmp空间不足解决办法
  4. Python调接口实现图像风格转化、黑白图像上色、人像动漫化
  5. android 视网膜黄斑检查 amsler,一张图检测黄斑病变,快来测试一下!
  6. 【软件】大企业ERP选型的方法
  7. 【备品备件】测试环境,生产环境以及打包部署
  8. 2020计算机保研经验贴
  9. Android 9.0去除Activity跳转动画
  10. response对象的作用