Python用拉格朗日法进行数据横向插值
来源:互联网 发布:淘宝运营月计划书 编辑:程序博客网 时间:2024/06/14 04:08
在工作中,好多数据存在缺失值,对于Excel 中对数据采用列插值,张良均的《Python数据分析与挖掘实战》已有代码,但是我今天遇到数据需要横向插值。
import pandas as pd #导入数据分析库Pandasfrom scipy.interpolate import lagrange #导入拉格朗日插值函数name='北京.xlsx'df = pd.read_excel(name, sheetname='小区均价')#lt=['2017-01', '2017-02', '2017-03', '2017-04', '2017-05',# '2017-06', '2017-07', '2017-08']lt=['2015-12', '2016-01', '2016-02', '2016-03', '2016-04', '2016-05', '2016-06', '2016-07', '2016-08', '2016-09', '2016-10', '2016-11', '2016-12', '2017-01', '2017-02', '2017-03', '2017-04', '2017-05', '2017-06', '2017-07', '2017-08']#自定义列向量插值函数#s为列向量,n为被插值的位置,k为取前后的数据个数,默认为5data=df[lt][0:df.shape[0]]def ployinterp_column(s, n, k=3): y = s[list(range(n-k, n)) + list(range(n+1, n+1+k))] #取数 y = y[y.notnull()] #剔除空值 if len(y)>k: return int(lagrange(y.index, list(y))(n)) #插值并返回插值结果#逐个元素判断是否需要插值aa=list(data.columns)for i in range(len(aa)): for j in range(len(data)): if (data[aa[i]].isnull())[j]: #如果为空即插值。 pp=pd.Series(list(data.iloc[j:j+1].values.flatten())) data[aa[i]][j] = ployinterp_column(pp, i)data.to_excel('luoganttcc6.xlsx') #输出结果,写入文件''' dframe = pd.read_excel('c.xlsx', sheetname='小区均价') writer = ExcelWriter('lg.xlsx') data.to_excel(writer,'Sheet2') writer.save()dindex=data.columnsdf[dindex]=data'''dindex=data.columns#提取修改数据的标签df[dindex]=data #将插值修改后的数据赋值给原数据#由于不知何故,将dataframe赋值后,Excel只有一个数据,索性重新copy,pastedfcity = pd.read_excel(name, sheetname='城市均价')dfregion = pd.read_excel(name, sheetname='区域均价')writer = pd.ExcelWriter(name)dfcity.to_excel(writer,'城市均价')dfregion.to_excel(writer,'区域均价')df.to_excel(writer,'小区均价')writer.save()
今天好累啊!!!终于写出来了。。。。
代码链接 提取密码ee1z
阅读全文
0 0
- Python用拉格朗日法进行数据横向插值
- Python对数据进行插值和下采样
- 用拉格朗日法进行数据插补
- matlab进行插值
- #{} 进行插值
- MATLAB对一组数据进行插值的方法
- python 一阶插值
- MATLAB数据插值
- 离散数据插值
- 数据插值
- 数据插值
- Matlab数据插值-内插、外插
- Python向MySQL批量插数据
- ArcGIS中python对图层固定边界字段进行插值、渲染并输出图片
- python的插值排序
- Matlab二维数据插值
- 图像放大并进行BiCubic插值
- 图像放大并进行BiCubic插值
- 如何优化提高tomcat启动速度
- Linux中./configure文件配置详解
- 网络流模板
- cctype头文件中的函数
- vue组件初学--弹射小球
- Python用拉格朗日法进行数据横向插值
- oracle导入DMP文件数据
- 注释转换
- hdu 1789 Doing Homework again
- 通过battery-historian分析wakelock对CPU和电池续航能力的影响
- hdu 6178
- 写一篇文章试试,看看审核要多久?
- Codeforces Round #432 Div. 2 C. Five Dimensional Points(数学)
- Rad Studio 10.2.1,Delphi 10.2.1[DVDISO]