pandas的学习4-处理丢失数据

import pandas as pd
import numpy as np

‘‘‘
有时候我们导入或处理数据, 会产生一些空的或者是 NaN 数据,如何删除或者是填补这些 NaN 数据就是我们今天所要提到的内容.
建立了一个6X4的矩阵数据并且把两个位置置为空.
‘‘‘
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
"""
             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
"""
‘‘‘
pd.dropna() 去掉

如果想直接去掉有 NaN 的行或列, 可以使用 dropna
‘‘‘
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
"""

‘‘‘
pd.fillna(value=)  代替
如果是将 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
"""

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

df.isnull() #这个是返回一个dateframe
"""
                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
"""

# 检测在数据中是否存在 NaN, 如果存在就返回 True:
#np.any()是概括
# np.any(df.isnull()) == True
# True
df.dropna(       axis=0,     # 0: 对行进行操作; 1: 对列进行操作    how=‘any‘   # ‘any‘: 只要存在 NaN 就 drop 掉; ‘all‘: 必须全部是 NaN 才 drop    )

   去掉有空值的行或者列

dateframe.fillna(value= ) 替代控制为value的值

dateframe.isnull() 这个返回的是一个dateframe 里面的只有false,true 当存在na的时候就是true

np.any(dateframe.isnull() )  判断这个dateframe是否有空值

出处:https://morvanzhou.github.io/tutorials/data-manipulation/np-pd/3-4-pd-nan/

原文地址:https://www.cnblogs.com/simon-idea/p/9571614.html

时间: 2024-11-02 17:09:02

pandas的学习4-处理丢失数据的相关文章

pandas的学习5-导入导出数据

import pandas as pd ''' pandas可以读取与存取的资料格式有很多种,像csv.excel.json.html与pickle等-, 详细请看官方说明文件 ''' # read from data = pd.read_csv('5.student.csv') print(data) # save to data.to_pickle('student.pickle') 出处:https://morvanzhou.github.io/tutorials/data-manipul

pandas.DataFrame学习系列2——函数方法(1)

DataFrame类具有很多方法,下面做用法的介绍和举例. pandas.DataFrame学习系列2--函数方法(1) 1.abs(),返回DataFrame每个数值的绝对值,前提是所有元素均为数值型 1 import pandas as pd 2 import numpy as np 3 4 df=pd.read_excel('南京银行.xlsx',index_col='Date') 5 df1=df[:5] 6 df1.iat[0,1]=-df1.iat[0,1] 7 df1 8 Open

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

ios网络学习------8 xml格式数据的请求处理 用代码块封装

#pragma mark 加载xml - (void)loadXML { //获取网络数据. NSLog(@"load xml"); //从web服务器加载数据 NSString *str = @"http://www.baidu.com?format=xml"; //这里是乱写的 //1简历NSURL NSURL *url = [NSURL URLWithString:str]; //2建立NSURLRequest NSURLRequest *request =

rabbitmq 学习记录 -- ACK和数据持久化

派猴子来的救兵 为了数据不丢失, 需要在两个层面上做一些配置. 一个是ACK, 一个是数据持久化. ACK 如果没有启用的话, 消费者拿走消息的时候, queue就把它删除了. 消费者拿走一条消息之后, 还没有处理完就crash了. 那么这条消息就丢失了. 为了保证消息一定被处理完了才从queue中被删掉, 就要启用Message acknowledgment . 启用之后, queue会在收到ack之后把消息删掉. 在这里没有timeout的概念, 哪怕这个任务执行很久, 不管多久, 会一直等

Oracle学习(八):处理数据

1.知识点:能够对比以下的录屏进行阅读 SQL> --SQL语句 SQL> --1. DML语句(Data Manipulation Language 数据操作语言): insert update delete select SQL> --2. DDL语句(Data Definition Language 数据定义语言): create/alter/drop/truncate table SQL> -- create/drop view,create/drop index(sequ

BUG_学习随笔(移动数据快捷开关)

4.3 一. 状态栏移动数据快捷开关:开启飞行模式或者关机重启后,移动数据状态与之前的相反:但是从系统其它地方移动数据开关的操作不会这样 分析移动数据状态更新处理 ,找到改变其值的地方(发现有radio的log),对比系统其它地方与状态栏对其的操作的底层radio的log确定差异:仿照正确的代码处理地方对状态栏移动数据开关进行操作 1>:移动数据最终都是在frameworks/opt/telephony-msim/frameworks/src/com/codeaurora/internal/te