【缺失值填补】面板数据的缺失值补全方法
对于两端缺失数据使用前后填充,对于中间数据使用线性插值(可替换)
import numpy as np
import pandas as pd
from scipy.interpolate import interp1d
df = pd.read_excel('data.xlsx')
df['城市'].fillna(method = 'ffill',inplace = True)
df.drop('city',1,inplace=True)
df[df['城市'] == '晋中市']
城市 | year | pm2.5(达尔豪斯) | lnpm2.5(达尔豪斯) | 第二产业增加值占GDP比重(%) | 人均地区生产总值(元) | 地区生产总值(万元) | 年末人口总数(万人) | 行政区域土地面积(全市) | 能源效率 | 地方财政一般预算内支出 | 科学支出 | 年末实有城市道路面积(万平方米) | 行政区域土地面积(市辖区) | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
210 | 晋中市 | 2004 | 30.117360 | 3.405102 | 50.40 | 8300.0 | 2539148.0 | 306.12 | 16404.0 | 8.337756 | 305000 | 350 | 370 | 1327.0 |
211 | 晋中市 | 2005 | 38.581012 | 3.652760 | 40.46 | 10772.0 | 3310171.0 | 306.63 | 16404.0 | 8.876620 | 394496 | 532 | 388 | 1311.0 |
212 | 晋中市 | 2006 | 45.324575 | 3.813849 | 42.31 | 12491.0 | 3856794.0 | 310.00 | 16404.0 | 9.215031 | 664054 | 497 | 421 | 1311.0 |
213 | 晋中市 | 2007 | 36.578386 | 3.599458 | 41.94 | 15157.0 | 4701976.0 | 313.88 | 16404.0 | 7.989844 | 721064 | 5866 | 521 | 1311.0 |
214 | 晋中市 | 2008 | 34.374482 | 3.537314 | 38.71 | 18219.0 | 5678066.0 | 317.90 | 16404.0 | 6.547999 | 856795 | 7569 | 585 | 1311.0 |
215 | 晋中市 | 2009 | 38.059734 | 3.639157 | 33.44 | 20335.0 | 6368106.0 | 320.00 | 16404.0 | 7.236680 | 1030873 | 8495 | 592 | 1311.0 |
216 | 晋中市 | 2010 | 49.963807 | 3.911299 | 36.46 | 24275.0 | 7638366.0 | 320.96 | 16392.0 | 7.221849 | 1205394 | 10119 | 616 | 1318.0 |
217 | 晋中市 | 2011 | 77.109822 | 4.345231 | 40.19 | 27300.0 | 8902376.0 | 323.30 | 16392.0 | 8.464127 | 1541989 | 11939 | 616 | 1318.0 |
218 | 晋中市 | 2012 | 57.939010 | 4.059391 | 40.64 | 30093.0 | 9865596.0 | 325.00 | 16392.0 | 7.195288 | 1787371 | 14058 | 769 | 1318.0 |
219 | 晋中市 | 2013 | 54.531928 | 3.998786 | 39.69 | 30977.0 | 10222281.0 | 330.50 | 16392.0 | 6.761532 | 2136333 | 17287 | 1010 | 1318.0 |
220 | 晋中市 | 2014 | 45.484201 | 3.817365 | 39.69 | 31434.0 | 10413000.0 | 330.50 | 16392.0 | 6.761532 | 2168543 | 19176 | 850 | 1318.0 |
221 | 晋中市 | 2015 | 42.342921 | 3.745801 | 31.39 | 31434.0 | 10461155.0 | 329.66 | 16392.0 | NaN | 2411647 | 19036 | 965 | 1318.0 |
222 | 晋中市 | 2016 | 35.998973 | 3.583490 | 30.09 | 32646.0 | 10911041.0 | 332.00 | 16444.0 | NaN | 2471699 | 15134 | 1095 | 1311.0 |
223 | 晋中市 | 2017 | 35.170259 | 3.560201 | 31.95 | 38274.0 | 12849233.0 | 332.00 | 16392.0 | 7.340062 | 2789231 | 24569 | 0 | 1318.0 |
224 | 晋中市 | 2018 | 34.452057 | 3.539569 | 32.14 | 42910.0 | 14476039.0 | 334.00 | 16444.0 | 7.550800 | 3226368 | 22871 | 1451 | 1311.0 |
df.isna().sum()
城市 0
year 0
pm2.5(达尔豪斯) 0
lnpm2.5(达尔豪斯) 15
第二产业增加值占GDP比重(%) 12
人均地区生产总值(元) 59
地区生产总值(万元) 34
年末人口总数(万人) 0
行政区域土地面积(全市) 0
能源效率 106
地方财政一般预算内支出 0
科学支出 0
年末实有城市道路面积(万平方米) 0
行政区域土地面积(市辖区) 0
dtype: int64
def chazhi_(data,col,method = 'linear',thresdhold = 0.9):'''创建缺失值补全函数,针对每一个分组data:传入的每一个分组method:使用插值的方法,thresdhold:插值的门槛,即缺失值占总数据的比重,如果超过门槛者不进行补充'''chazhi_index = data[col][data[col].isna()].indexif len(chazhi_index)/data.shape[0] >= 0.9:return dataelse:y = data[col][~(data[col].isna())].valuesx = data[col][~(data[col].isna())].indexf = interp1d(x, y, kind = method)chazhi_index_2 = [c for c in chazhi_index if c<x.max() and c>x.min()]data.loc[chazhi_index_2,col] = f(chazhi_index_2)fill = data[col].fillna(method = 'ffill')bill = data[col].fillna(method = 'bfill')w = pd.DataFrame((fill,bill)).mean()data.iloc[:,0] = wreturn data
def chazhi(data,group_id):'''针对整个dataframe,data:dataframe文件group_id:样本的id'''na_col = data.columns[data.isna().sum() != 0]for col in na_col[1:]:test = data[[col,group_id]]data[col] = test.groupby(group_id).apply(chazhi_,col= col,method = 'linear')[col]return data[data.isna().sum(1)==0]
w = chazhi(df,'城市')
w.isna().sum()
城市 0
year 0
pm2.5(达尔豪斯) 0
lnpm2.5(达尔豪斯) 0
第二产业增加值占GDP比重(%) 0
人均地区生产总值(元) 0
地区生产总值(万元) 0
年末人口总数(万人) 0
行政区域土地面积(全市) 0
能源效率 0
地方财政一般预算内支出 0
科学支出 0
年末实有城市道路面积(万平方米) 0
行政区域土地面积(市辖区) 0
dtype: int64
w[w['城市']== '晋中市']
城市 | year | pm2.5(达尔豪斯) | lnpm2.5(达尔豪斯) | 第二产业增加值占GDP比重(%) | 人均地区生产总值(元) | 地区生产总值(万元) | 年末人口总数(万人) | 行政区域土地面积(全市) | 能源效率 | 地方财政一般预算内支出 | 科学支出 | 年末实有城市道路面积(万平方米) | 行政区域土地面积(市辖区) | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
210 | 晋中市 | 2004 | 30.117360 | 3.405102 | 50.40 | 8300.0 | 2539148.0 | 306.12 | 16404.0 | 8.337756 | 305000 | 350 | 370 | 1327.0 |
211 | 晋中市 | 2005 | 38.581012 | 3.652760 | 40.46 | 10772.0 | 3310171.0 | 306.63 | 16404.0 | 8.876620 | 394496 | 532 | 388 | 1311.0 |
212 | 晋中市 | 2006 | 45.324575 | 3.813849 | 42.31 | 12491.0 | 3856794.0 | 310.00 | 16404.0 | 9.215031 | 664054 | 497 | 421 | 1311.0 |
213 | 晋中市 | 2007 | 36.578386 | 3.599458 | 41.94 | 15157.0 | 4701976.0 | 313.88 | 16404.0 | 7.989844 | 721064 | 5866 | 521 | 1311.0 |
214 | 晋中市 | 2008 | 34.374482 | 3.537314 | 38.71 | 18219.0 | 5678066.0 | 317.90 | 16404.0 | 6.547999 | 856795 | 7569 | 585 | 1311.0 |
215 | 晋中市 | 2009 | 38.059734 | 3.639157 | 33.44 | 20335.0 | 6368106.0 | 320.00 | 16404.0 | 7.236680 | 1030873 | 8495 | 592 | 1311.0 |
216 | 晋中市 | 2010 | 49.963807 | 3.911299 | 36.46 | 24275.0 | 7638366.0 | 320.96 | 16392.0 | 7.221849 | 1205394 | 10119 | 616 | 1318.0 |
217 | 晋中市 | 2011 | 77.109822 | 4.345231 | 40.19 | 27300.0 | 8902376.0 | 323.30 | 16392.0 | 8.464127 | 1541989 | 11939 | 616 | 1318.0 |
218 | 晋中市 | 2012 | 57.939010 | 4.059391 | 40.64 | 30093.0 | 9865596.0 | 325.00 | 16392.0 | 7.195288 | 1787371 | 14058 | 769 | 1318.0 |
219 | 晋中市 | 2013 | 54.531928 | 3.998786 | 39.69 | 30977.0 | 10222281.0 | 330.50 | 16392.0 | 6.761532 | 2136333 | 17287 | 1010 | 1318.0 |
220 | 晋中市 | 2014 | 45.484201 | 3.817365 | 39.69 | 31434.0 | 10413000.0 | 330.50 | 16392.0 | 6.761532 | 2168543 | 19176 | 850 | 1318.0 |
221 | 晋中市 | 2015 | 42.342921 | 3.745801 | 31.39 | 31434.0 | 10461155.0 | 329.66 | 16392.0 | 6.954375 | 2411647 | 19036 | 965 | 1318.0 |
222 | 晋中市 | 2016 | 35.998973 | 3.583490 | 30.09 | 32646.0 | 10911041.0 | 332.00 | 16444.0 | 7.147218 | 2471699 | 15134 | 1095 | 1311.0 |
223 | 晋中市 | 2017 | 35.170259 | 3.560201 | 31.95 | 38274.0 | 12849233.0 | 332.00 | 16392.0 | 7.340062 | 2789231 | 24569 | 0 | 1318.0 |
224 | 晋中市 | 2018 | 34.452057 | 3.539569 | 32.14 | 42910.0 | 14476039.0 | 334.00 | 16444.0 | 7.550800 | 3226368 | 22871 | 1451 | 1311.0 |
【缺失值填补】面板数据的缺失值补全方法相关推荐
- 《中国人工智能学会通讯》——12.33 众包知识库补全方法概览
12.33 众包知识库补全方法概览 本章介绍众包知识库补全的方法概览,如图 1所示.其基本思想包含两个部分,其一,利用多种数据源,如现有的多个知识库.Web 结构化数据等,提取知识数据,并将不同数据源 ...
- html标签 补全方法 python,Python Beautiful Soup学习之HTML标签补全功能
Beautiful Soup是一个非常流行的Python模块.该模块可以解析网页,并提供定位内容的便捷接口. 使用下面两个命令安装: pip install beautifulsoup4或者 sudo ...
- CVPR 2021 | ShapeInversion: 基于GAN逆映射的无监督点云补全方法
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 摘要 · 看点 在CVPR 2021上,商汤科技-南洋理工大学联合 AI 研究中心 S-Lab 提出了 ...
- 直播 | WWW 2021:基于结构增强文本表示学习的知识图谱补全方法
「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...
- python tab键自动补全_设置python中TAB键自动补全方法
设置python中TAB键自动补全方法 一.创建自动补全脚本如下: vi /tmp/python/tab.py #!/usr/bin/python # python tab file import s ...
- JS字符串补全方法padStart()和padEnd()简介
一.关于字符串补全 在JS中,字符串补全是常用操作,用的比较多的就是时间或者日期前面的补0. 例如,日期,我们多采用4-2-2的表示形式,例如: 2018-07-23 当我们使用时间戳进行月份获取的时 ...
- java padend_JS字符串补全方法padStart()和padEnd()
这个方法无意中看到的,感觉还是蛮实用的,特此分享一波.我想大家都会有遇到将时间戳转换成时间格式的时候,时间或日期不足2位的前面补0.有了今天说的这个东西,就又可以少写几行代码了,大家在项目中遇到类似场 ...
- 数据缺失值补全方法 sklearn.impute.SimpleImputer 使用实例
一.环境 Python 3.7.3(Anaconda 3) sklearn.version'0.20.3' 二.方法 对数据中的缺失值进行插补 官方说明:https://scikit-learn.or ...
- python怎么处理数据集的缺失值_python 对数据集的缺失值补全方法 sklearn.preprocessing.Imputer...
1.官方说明 sklearn.preprocessing.Imputer 用于对数据中的缺失值进行补全,支持"均值(mean)"."中值(median)".&q ...
最新文章
- SE16N新改表内容方法!!!
- 防火墙简介(一)——iptables防火墙
- win7可以安装sqlserver2008 企业版吗_MYSQLServer2008R2详细的图文安装教程
- 来自一位家长的肺腑之言,句句在理!!!
- angular判断两个对象值是否相等,包含对象深层判断,深拷贝的两个对象
- 2018网易未来科技峰会召开,科技新浪潮改变商业
- redis scala编程之创建连接
- cookie、session、localStorage、sessionStorage区别
- SimpleDateFormat中参数对照表
- Android TV开发总结【适配】
- mysql数据库引擎事务_代码配置都没问题,为什么事务不回滚(了解Mysql数据库引擎)...
- 数据资产管理及数据管控体系建设思路
- Sap Hana触发器
- 小程序设置page背景图片透明度
- win7html.exe,win7系统exe程序打开方式还原怎么弄 win7系统还原exe程序打开方式办法介绍...
- android 日历翻页动画,datetimepicker一个不错的日历android特效
- 路径规划学习之地图生成(一)
- 使用SubstanceDesign和Unity插件ShaderForge制作风格化火焰
- python 中关键字 global 的用法
- python 多列排序_python sorted多列排序