6 DataFrame处理丢失数据--数据清洗

处理丢失数据

有两种丢失数据:

· None

· np.nan(NaN)

1 None

None是Python自带的,其类型为Python object。因此,None不能参与到任何计算中。

object类型的运算要比int类型的运算慢得多

计算不同数据类型求和时间

2 np.nan(NaN)

np.nan是浮点型,能参与到计算中。但计算结果总是NaN。

可以使用np.nan*()函数来计算nan,此时视nan为0。

3 pandas中的None与NaN

    1)pandas中None与np.nan都视作np.nan

创建DataFrame

张三、小齐的work列没有值,需要进行数据清洗。

isnull()

notnull()

isnull()

将空的数据就提取出来了。

notnull()判断数据不为空,所有数据都不为空,才能提取出来,用all(),只要有一个为空用any()。

dropna():过滤丢失数据

Signature: df.dropna(axis=0, how=‘any‘, thresh=None, subset=None, inplace=False)Docstring:

Remove missing values.

数据清洗通常只会将不符合条件的数据行删除,所以axis=0.

可以选择过滤的行还是列(默认是行)

也可以选择过滤的方式 how=‘all‘

fillna():填充丢失数据

填充函数Series/DataFrame

Signature: df.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)Docstring:

Fill NA/NaN values using the specified method

如果将 inplace=True  ,就会更改原DataFrame数据,而不是返回新的DataFrame数据。

===================================

练习:

  1. 简述None与NaN的区别
  2. 假设张三李四参加模拟考试,但张三因为突然想明白人生放弃了英语考试,因此记为None,请据此创建一个DataFrame,命名为ddd3

  1. 老师决定根据用数学的分数填充张三的引用成绩,如何实现,

  1. 用李四的英语成绩填充张三的英语成绩?

===================================

根据官方文档,我们知道fillna有一下几种method:‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None;

那么每一种method都是起什么样的作用呢?

method : {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, default None

Method to use for filling holes in reindexed Series pad / ffill: propagate last valid observation forward to next valid backfill / bfill: use NEXT valid observation to fill gap

pad/ffill:用前一个非缺失值去填充该缺失值

backfill/bfill:用下一个非缺失值填充该缺失值

None:指定一个值去替换缺失值

=========================================

这篇博客不错,大家可以参考下

https://blog.csdn.net/xiaomuworld/article/details/52057804

原文地址:https://www.cnblogs.com/avention/p/9077414.html

时间: 2024-10-09 19:25:25

6 DataFrame处理丢失数据--数据清洗的相关文章

python数据分析——处理丢失数据

处理丢失数据 有两种丢失数据: None np.nan(NaN) 1. None None是Python自带的,其类型为python object.因此,None不能参与到任何计算中. In [1]: #查看None的数据类型 2. np.nan(NaN) np.nan是浮点类型,能参与到计算中.但计算的结果总是NaN. In [2]: #查看np.nan的数据类型 3. pandas中的None与NaN 1) pandas中None与np.nan都视作np.nan 创建DataFrame In

Kafka重复消费和丢失数据研究

Kafka重复消费原因 底层根本原因:已经消费了数据,但是offset没提交. 原因1:强行kill线程,导致消费后的数据,offset没有提交. 原因2:设置offset为自动提交,关闭kafka时,如果在close之前,调用 consumer.unsubscribe() 则有可能部分offset没提交,下次重启会重复消费.例如: try { consumer.unsubscribe(); } catch (Exception e) { } try { consumer.close(); }

RMAN数据库恢复之丢失数据文件的恢复

删除某一数据文件:SQL> HOST del D:\app\Administrator\oradata\orcl\USERS01.dbf 启动数据库,提示丢失数据文件4,此时数据库处理MOUNT状态: RMAN> STARTUP …… 第 1 行出现错误:ORA-01157: 无法标识/锁定数据文件 4 - 请参阅 DBWR 跟踪文件ORA-01110: 数据文件 4: 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF' 执行RMAN恢复======

使用ehcache持久化数据到磁盘 并且在应用服务器重启后不丢失数据

使用ehcache时如何持久化数据到磁盘,并且在应用服务器重启后不丢失数据1.如何持久化到磁盘使用cache.flush(),每次写入到cache后调用cache.flush() ,这样ehcache 会将索引(xxx.index)回写到磁盘.这样就不用担心程序是否非正常退出导致缓存丢失了. 2.附上配置文件修改: <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchem

Sql server 大数据量插入速度慢或丢失数据解决办法

问题描述:我的设备每秒2000条数据插入数据库,2个设备总共4000条,当在程序里面直接用insert语句插入时,两个设备同时插入大概总共能插入约2800条左右,数据丢失约1200条左右,找了好多解决方法,整理了两种效果比较明显的解决办法: 第一种:使用Sql Server函数: 1.将数据组合成字串,使用函数将数据插入内存表,后将内存表数据复制到要插入的表. 2.组合成的字符换格式:'111|222|333|456,7894,7458|0|1|2014-01-01 12:15:16;1111|

丢失数据的另类诊断方法

问题描述:开发组反馈有张表中的四个字段数据经常被置为空,走查了很多代码,都没有定位到问题. 系统环境描述:典型的j2ee架构,中间件是weblogic,数据库是oracle. 诊断思路:就是要定位到在某个时刻某个功能触发的. 定位过程: 1.在表上加上一个触发器,建一张监控表,监控update的时候的一些信息,哪个用户操作的,操作的时间点,操作前的值是多少. 2.通过一天的等待,终于在监控表中发现了又改动,时间是10:20.然后拿回来weblogic的access.log日志中找到10:20之前

小猪猪教你如何找回相机存储卡内的丢失数据

大家一般所说的相机卡, 不管是CF卡, SD卡, XD卡等, 其实都属于数据存储卡.因为一般的数码相机的默认内置空间是1-2G, 是没有办法满足存储大量数码照片的, 因此大多数相机都有卡槽可供增加额外的存储卡.因为误删, 格式化, 存储卡的读取故障,相机存储卡的数据属于最容易丢失的类型之一. 有什么办法可以找回相机存储卡内的丢失数据吗? 因为有一些相机有删除全部照片的功能, 有的时候将相机连在电脑上, 因为一些存储卡错误, 电脑系统 会提醒你格式化存储卡, 有的用户不小心就将存储卡给格式化了,结

filebeat使用multiline丢失数据问题

最近部署filebeat采集日志. 发现配置multiline后,日志偶尔会丢失数据,而且采集到的数据长度都不相同,所以和日志长度没有关系. 查阅filebeat官网后,找到了问题.filebeat有个配置max_lines,默认值为500.查看了我们的日志文件,发现需要合并的日志行数超过了500行. max_lines The maximum number of lines that can be combined into one event. If the multiline messag

AlwaysOn 同步提交模式是否会丢失数据?

最近朋友去恒大面试,考官给出这样一个观点: 同步情况下丢失数据有两种情况:一种是阻塞丢失,一种是同步失败. 给出的处理办法:阻塞丢失的话干掉阻塞进程,或者重启实例都能解决:同步失败就只能重做节点. 让我们一起来理解下,微软官方对于AlwaysOn同步提交模式的理解,当然直接看英文原文理解更精准: https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/availability-modes-a