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
第一次写博客,记录一下学习生活
本文全面解析了缺失数据的观测、类型及处理策略,包括np.nan、None和NaT的特性,Nullable类型的介绍,以及NA符号的逻辑与算术运算规则。深入探讨了fillna、dropna和interpolate方法的应用,线性插值及其他高级插值法,为数据预处理提供了实用技巧。
2041

被折叠的 条评论
为什么被折叠?



