Pandas处理丢失数据

1、创建含NaN的矩阵

>>> dates = pd.date_range(‘20130101‘, periods=6)
>>> df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns=[‘A‘,‘B‘,‘C‘,‘D‘])
>>> df.iloc[0,1] = np.nan
>>> df.iloc[1,2] = np.nan
>>> print(df)
             A     B     C   D
2013-01-01   0   NaN   2.0   3
2013-01-02   4   5.0   NaN   7
2013-01-03   8   9.0  10.0  11
2013-01-04  12  13.0  14.0  15
2013-01-05  16  17.0  18.0  19
2013-01-06  20  21.0  22.0  23

2、pd.dropna():直接去掉有NaN的行或列

>>> df.dropna(
...     axis=0,     # 0: 对行进行操作; 1: 对列进行操作
...     how=‘any‘   # ‘any‘: 只要存在 NaN 就 drop 掉; ‘all‘: 必须全部是 NaN 才 drop
...     )
             A     B     C   D
2013-01-03   8   9.0  10.0  11
2013-01-04  12  13.0  14.0  15
2013-01-05  16  17.0  18.0  19
2013-01-06  20  21.0  22.0  23

3、pd.fillna():将NaN的值用其他值代替,比如代替成0:

>>> df.fillna(value=0)
             A     B     C   D
2013-01-01   0   0.0   2.0   3
2013-01-02   4   5.0   0.0   7
2013-01-03   8   9.0  10.0  11
2013-01-04  12  13.0  14.0  15
2013-01-05  16  17.0  18.0  19
2013-01-06  20  21.0  22.0  23

4、pd.isnull():判断是否有缺失数据NaN,为True表示缺失数据

>>> df.isnull()
                A      B      C      D
2013-01-01  False   True  False  False
2013-01-02  False  False   True  False
2013-01-03  False  False  False  False
2013-01-04  False  False  False  False
2013-01-05  False  False  False  False
2013-01-06  False  False  False  False

>>> np.any(df.isnull()) == True#检测在数据中是否存在 NaN, 如果存在就返回 True:
  True

原文地址:https://www.cnblogs.com/anhoo/p/9383840.html

时间: 2024-07-29 23:56:15

Pandas处理丢失数据的相关文章

pandas处理丢失数据-【老鱼学pandas】

假设我们的数据集中有缺失值,该如何进行处理呢? 丢弃缺失值的行或列 首先我们定义了数据集的缺失值: import pandas as pd import numpy as np dates = pd.date_range("2017-01-08", periods=6) data = pd.DataFrame(np.arange(24).reshape(6, 4), index=dates, columns=["A", "B", "C&

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

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(); }

python pandas 获取列数据的几种方法及书写形式比较

pandas获取列数据位常用功能,但在写法上还有些要注意的地方,在这里总结一下: ''' author: zilu.tang 2015-12-31 ''' import pandas as pd data1 = pd.DataFrame(...) #任意初始化一个列数为3的DataFrame data1.columns=['a', 'b', 'c'] 1. data1['b'] #这里取到第2列(即b列)的值 2. data1.b #效果同1,取第2列(即b列) #这里b为列名称,但必须是连续字

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之前