Pandas 学习

本文全面解析了缺失数据的观测、类型及处理策略,包括np.nan、None和NaT的特性,Nullable类型的介绍,以及NA符号的逻辑与算术运算规则。深入探讨了fillna、dropna和interpolate方法的应用,线性插值及其他高级插值法,为数据预处理提供了实用技巧。

Task01-缺失数据

缺失值观测及其类型

一、了解缺失信息

  (1) isna和notna方法

isna确定哪些是缺失值而notna确定哪些是非缺失值

df.isna().sum() 查看有多少缺失值  等同于 pd.isnull(df).sum()

通过df.info()查看缺失信息

  (2) 查看所有存在缺失值的行

df[df['colname'].isna()]--查看某一列中所有存在缺失值的行

  (3) 挑选出所有非缺失值列

df[df.notna().all(1)]--此处使用any和all会产生不一样的结果,all就是全部非缺失值,any就是至少有一个不是缺失值

二、三种缺失符号

  (1)np.nan

np.nan是一个麻烦的东西,首先它不等与任何东西,甚至不等于自己;其次,它在numpy中的类型为浮点,由此导致数据集读入时,即使原来是整数的列,只要有缺失值就会变为浮点型;此外,对于布尔类型的列表,如果是np.nan填充,那么它的值会自动变为True而不是False,但当修改一个布尔列表时,会改变列表类型,而不是赋值为True,在所有的表格读取后,无论列是存放什么类型的数据,默认的缺失值全为np.nan类型。

  (2)None

None会等于自身,它的布尔值为False,修改布尔列表不会改变数据类型,在传入数值类型后,会自动变为np.nan

  (3)NaT

NaT是针对时间序列的缺失值,是Pandas的内置类型,可以完全看做时序版本的np.nan,与自己不等,且使用equals是也会被跳过。

三、Nullable类型与NA符号

  (1)Nullable整型

其与原来标记int上的符号区别在于首字母大写:'Int'

  (2)Nullable布尔

对于该种类型而言,作用与上面的类似,记号为boolean

  (3)string类型

能够区分开原本含糊不清的object类型

四、NA的特性

  (1)逻辑运算

只需看该逻辑运算的结果是否依赖pd.NA的取值,如果依赖,则结果还是NA,如果不依赖,则直接计算结果,例如

  (2)算术运算和比较运算

这里只需记住除了下面两类情况,其他结果都是NA

五、convert_dtypes方法

这个函数的功能就是在读取数据时,把数据列转化为Nullable类型

缺失数据的运算与分组

一、加号与乘号规则

使用加法时,缺失值为0;使用乘法时,缺失值为1;使用累计函数时,缺失值自动略过。

二、groupby方法中的缺失值

自动忽略为缺失值的组

填充与剔除

一、fillna方法

  (1)值填充与前后向填充(ffill、bfill)

  (2)填充中的对齐特性

二、dropna方法

  (1)axis参数

  (2)how参数--可取值any或all,表示全为缺失去除和存在缺失去除

  (3)subset参数(即在某一列范围内搜索缺失值)

插值

一、线性插值

  (1)与索引无关的线性插值

默认状态下,interpolate会对缺失的值进行线性插值

  (2)与索引有关的插值

method中的index和time选项可以使插值线性地依赖索引,即插值为索引的线性函数

二、高级插值法

例如样条插值、多项式插值、阿基玛插值等

三、interpolate中的限制参数

  (1)limit表示最多插入多少个值  

  (2)limit_direction表示插值的方向--forward,backward,both

  (2)limit_area表示插值区域,可选inside,outside,默认为None

 

 

第一次写博客,记录一下学习生活

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值