pandas空值填充

  • 背景
  • 完整代码
  • 代码解读

背景

数据缺失是数据不完整的表现,常表现为空值,也是数据分析人员经常碰到的问题,数据的缺失可能是数据采集不到,或在数据录入的不小心遗漏,或者根本不存在这个数据,还可能是数据导出的过程发生错误,数据的缺失会使得信息不完整,处理缺失数据一般会有下面两种办法

  1. 直接删除掉
    当缺失值占比非常小,直接省略掉缺失的这部分数据,但是在原数据量小的情况下,原本数据能够提供的信息就不多,再删除这些缺失值会导致信息更一步减少,非常不可取,这时候就需要通过填充手段来进行缺失值填充。
  2. 空值填充
    空值填充是指利用某些技术手段把空缺的值给填充上,来弥补信息的完全丢失,常见的填充方法有固定值填充法,均值填充法,中位数填充法,众数填充法,向前向后填充法,高端一点的有K近邻填充法,预测模型填充法,每种方法有其适用场景,这次主要讲一讲最常用的向前向后填充法。
  3. 不予理会
    有些算法对空值友好,有较好的容错能力,及时空值参与模型也不会对模型影响很,这个时候可以考虑不理睬缺失值。

现在手边有一份数据表如下,其中黄色部分是缺失的,根据业务知道其中0也是不合理的,现在需要把其中的0值去掉,并且将空值填充,看到漕泾镇板块这一列数据缺失比较大,对于这种缺失严重的,建立一套标准直接删除掉,大致步骤如下

  1. 用空值替换掉表中0值
  2. 统计每一列的空值
  3. 设定一个门槛,将缺失严重的列直接删除掉
  4. 利用向前向后填充法填充表中空值

我们发现向前填充之后,首行还是没发填充,原因很简单,因为,向前填充是利用前面一个数来填充后面的空位,如果前面没有数的话,也就无法填充,同样的道理,向后填充也无法填充最后一行的空值。针对这种情况需要先后采用向后填充和向后填充,两者配合使用,下面是接着再使用向后填充的效果。

完整代码

# -*- coding: utf-8 -*-
"""
project_name:数据填充
@author: 帅帅de三叔
Created on Tue Nov 12 13:33:44 2019
"""
import numpy as np #导入数据分析模块
import pandas as pd #导入数据分析模块
data=pd.read_excel("待填充数据.xlsx",sheet_name="房间数",index_col="月份") #读取数据
print(data.describe())
data[data==0]=np.nan #先将0值转化为空值\
df=data.dropna(axis=1,thresh=11, subset=None, inplace=False) #过滤空值过多的列
print(df.describe())
df1=df.fillna(value=None,method='ffill',axis=0,limit=None) #列向前填充
df2=df.fillna(value=None,method='bfill',axis=0,limit=None) #列向后填充,避免首行空值
df2.to_excel("清洗填充结果.xlsx")

代码解读

读取数据后可以 data.describe() 函数来查看数据框的一些统计情况,特别注意count值,可以对比count值和len的大小,两者之差就是缺失值的个数,紧接着将0值转化为空值,然后在利用 thresh 的值来设定非空缺值个数为多少时候不过滤,再通过 describe() 函数来看前后两次的数据维度,可以发现数据维度在收缩,然后接连使用向前填充和向后填充,最后将填充的结果保存到excel。

pandas空值填充相关推荐

  1. python 三分类的哑编码_python数据挖掘实战 -数据预处理篇(数据可视化-空值填充-哑变量编码)...

    数据预处理包含:数据盘点-数据可视化分析-空值填充-数据编码 import matplotlib.pyplot as plt import seaborn as sns from sklearn.ne ...

  2. 数据预处理+缺失值处理方案+Missing Value+pandas+缺失值填充方法、方案

    数据预处理+缺失值处理方案+Missing Value+pandas+缺失值填充方法.方案 缺失值+sklearn from sklearn.preprocessing import Imputer ...

  3. pandas技巧:用一列的非空值填充另一列对应行的空值

    利用数据框df的name列中的非空值,去填充df的features_1列中对应的NaN. 很容易写出df[df['features_1'].isnull()]['features_1'']=df[df ...

  4. pandas | DataFrame基础运算以及空值填充

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是pandas数据处理专题的第四篇文章,我们一起来聊聊DataFrame中的索引. 上一篇文章当中我们介绍了DataFrame数据结构当 ...

  5. Python pandas 空值缺失值(NaN)处理填充替换判断删除含缺失空值数据行

    缺失值处理 判断 datats_code symbol name area industry list_date 0 000001.SZ 1.0 平安银行 深圳 银行 19910403 1 00000 ...

  6. python空值填充_pandas | DataFrame基础运算以及空值填充

    今天是pandas数据处理专题的第四篇文章,我们一起来聊聊DataFrame的基本运算. 上一篇文章当中我们介绍了DataFrame数据结构当中一些常用的索引的使用方法,比如iloc.loc以及逻辑索 ...

  7. python pandas空值与缺失值处理

    一.空值与缺失值 空值:在pandas中的空值是"" 缺失值:在dataframe中为nan或者naT(缺失时间),在series中为none或者nan 二.相关处理函数: df. ...

  8. [Pandas] 缺失值填充 df.fillna()

    df.fillna(x)可以将缺失值填充为指定的值 import pandas as pd # 原数据 df = pd.DataFrame({'A':['a1','a1','a2','a2'],'B' ...

  9. python空值填充为固定值_Python基础:numpy中空值怎样设置

    今天小编为大家带来在numpy中如何设置空值的办法,下面一起来看看吧. 我不明白为什么我会以0而不是不满足条件的空值或空值结尾... b是一个用0和1值填充的numpy数组,c是另一个完全填充的num ...

  10. python填充空值_python空值_python空值填充_python空值变量 - 云+社区 - 腾讯云

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 整个数据类型也可以看做是一个"类" .每一种数据类型都是一个 ...

最新文章

  1. NARF(Normal Aligned Radial Feature)关键点
  2. 牛客 - 「土」巨石滚滚(贪心)
  3. Java项目几个月能完成_c#项目转JAVA,第5个月,基本完成
  4. 示例:用户登录(python版)
  5. uni-app项目实现客服、用户聊天
  6. Bootstrap 中 表单和图片(二)
  7. 基于Unity官方素材开发的3D二人沙漠坦克大战
  8. 二阶系统响应指标图_二阶系统的性能指标
  9. Python:寻找回文素数
  10. java时区转换_java中的时区转换
  11. 交互设计好书推荐:【A029】[图灵交互设计丛书].简约至上:交互式设计四策略.第2版
  12. 天蝎项目整机柜服务器技术规格,天蝎工程项目整机柜服务器技术规范V1.01.pdf
  13. 【新年福利】2019年值得一用的8款协作工具
  14. 我的毕业四年总结及对未来的期许!
  15. [译] 2019 前端性能优化年度总结 — 第五部分
  16. 解决photoshop cs5每次打开都输入序列号的问题 (至少我好用 win7 64位)
  17. java网上销售外文文献_JAVA外文文献+翻译.docx
  18. 今天向大家推荐一款国产良心工具包 -- Hutool,让你的java变得更甜
  19. 《海岛纪元》游戏评测
  20. java切割音频文件

热门文章

  1. 五子棋游戏设计详解(C语言)
  2. 像Selenium爬网页一样爬手机App,可见即可爬——appium 教程(一)appium安装windows版
  3. 传统路径规划算法介绍
  4. 易语言计算机设备获取,易语言获取混音设备名称
  5. auto.js实现微信双向删除好友功能(检测僵尸粉)
  6. 新品上市,影音先锋投影仪大眼橙H3,会带来怎样的观影体验
  7. 怎么用matlab做系统辨识,系统辨识大牛Ljung编写的MATLAB系统辨识使用手册
  8. k3梅林刷官改变砖_K3 op强刷回官改变砖,TTL救砖也不行,请大神分析下是不是要换内存了...
  9. C语言—随机种子的设定
  10. python调用按键精灵插件_按键精灵WQM软件使用说明书,资深老师讲解就是详细