在工作中,好多数据存在缺失值,对于Excel 中对数据采用列插值,张良均的《Python数据分析与挖掘实战》已有代码,但是我今天遇到数据需要横向插值。

import pandas as pd #导入数据分析库Pandas
from 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,paste
dfcity = 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

Python用拉格朗日法进行数据横向插值相关推荐

  1. Python学习笔记:一维数据的插值

    插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其它点处的近似值.与拟合不同的是,要求曲线通过所有的已知数据.SciPy的interpolate模块提供了许多对数据进 ...

  2. python给出数据点进行插值_Python对数据进行插值和下采样的方法

    使用Python进行插值非常方便,可以直接使用scipy中的interpolate import numpy as np x1 = np.linspace(1, 4096, 1024) x_new = ...

  3. 函数插值的python实现——拉格朗日、牛顿插值

    函数插值的python实现--拉格朗日.牛顿插值 1. 拉格朗日(Larange)插值 实现代码 2. 牛顿(Larange)插值 2.1 牛顿插值多项式的基本形式 2.2 牛顿均差插值多项式 (1) ...

  4. 【数值分析】python实现拉格朗日插值

    基于python实现拉格朗日插值,可自定义节点数量n. 一.拉格朗日插值公式 二.python代码 import matplotlib.pyplot as plt import numpy as np ...

  5. python与GIS数据处理——随机森林算法插值

    背景 这个是我系列插值文章的第三篇,使用机器学习插值(使用随机森林算法插值). 代码链接 代码我已经放在Github上面了,免费分享使用,https://github.com/yuanzhoulvpi ...

  6. 实验Matlab数值运算,MATLAB数值实验一(数据的插值运算及其应用完整版

    <MATLAB数值实验一(数据的插值运算及其应用完整版>由会员分享,可在线阅读,更多相关<MATLAB数值实验一(数据的插值运算及其应用完整版(6页珍藏版)>请在人人文库网上搜 ...

  7. python用xlrd怎么清洗数据_用Python进行数据清洗!

    导读:数据清洗是数据分析的必备环节,在进行分析过程中,会有很多不符合分析要求的数据,例如重复.错误.缺失.异常类数据. Python资源共享群:626017123 01 重复值处理 数据录入过程.数据 ...

  8. python对浮点类型的数据进行格式化_(自用)Python Log2 数据类型、字符编码、格式化...

    数据类型 1.整数 十六进制可以使用0x+数字0-9(字母a-f). 2.浮点数 一般使用科学计数法,用e代替10,比如1.2e5,为1.2×10^5. 3.字符串 可以使用单引号' ',或者双引号& ...

  9. python穷举法_python 穷举指定长度的密码例子

    本程序可根据给定的字符字典,穷举指定长度的所有字符串: def get_pwd(str, num): if(num == 1): for x in str: yield x else: for x i ...

最新文章

  1. TMS Scripter importtool的使用
  2. Markovdecisionprocesses_Discretestochasticdynamicprogramming下载
  3. documentbodyscrollTop的值总为零的解决办法
  4. 此加载项为此计算机的所有用户安装_MDI Jade 6.5软件安装教程
  5. 老板让我搞数字化转型?成功之后,我整理了这套超全的方法论
  6. mysql 分库分表中间件 mycat_阿里开源的分布式分库分表中间件之MyCat从入门到放弃...
  7. 获取synchronized锁中的阻塞队列中的线程是非公平的
  8. 硬盘序列号更改工具 v0.1 下载
  9. [转载]AutoCAD2013 以上利用AccoreConsole+ c# NetApi 批量处理图纸
  10. 激光导航AGV的停车精度受环境变化的影响有多大?
  11. tex 表格内容换行_如何让latex表格中一个单元格的文字换行
  12. 史上最全ASCII码对照表0-255(%d)
  13. 基于TCP的STM32 IAP bootloader初步设计
  14. 常用计算机防治病毒软件有哪些,如何防治计算机病毒?常用的反病毒软件有哪些?...
  15. 2021-07-27 百度飞桨AI达人创造营手账
  16. 短视频素材怎么找?怎么做短视频运营?
  17. python3是什么意思啊_python3指的是什么意思
  18. python中转义是什么意思_python中的转义
  19. 机器学习基石(林轩田)第一章 笔记与感悟总结
  20. Mac 上 vscode 的 rust-analyzer 扩展无法追踪/跟踪方法定义

热门文章

  1. linux 小白启航之路-搭建linuxDHCP中继服务器
  2. 一款超级简单的瀑布流的制作
  3. 【node测试系列】几款前端测试断言库(Assertions lib)的选型总结
  4. CentOS远程硬盘重装技术之我见
  5. #舍得Share#Flash Media Server4.5迅雷高速下载地址by lwxshow
  6. 鸟哥的Linux私房菜基础学习篇(第二版)第二章课后习题与答案
  7. #.NET分别以GET和POST方式抓取远程页面
  8. [票据打印]打印走纸控制(1) - 设置纸型
  9. linux kref详解
  10. 802.11的隐藏节点和RTS,CTS机制