第7章 数据清洗和准备

it2024-12-11  15

7.1 处理缺失数据

np.nan: 表示缺失数据,可通过isnull()函数检测

出理缺失数据的函数

滤除缺失数据

通过dropna方法,返回一个近含非空数据和索引值的Series 等价于 dropna默认丢弃任何含有na的行,通过传入how = all将只丢弃全为NA的那些行。

thresh参数可设置清洗的阈值

填充缺失数据

主要方法是fillna方法,通过df.fillna(0)方法将缺失值设置为0

若是通过一个字典调用fillna,就可以实现对不同的列填充不同的值:

fillna默认会返回新对象,但也可以对现有对象进行就地修改:

通过method选项,传入method='ffill’向前填充,通过limit设置填充的个数。

7.2 数据转换

DataFrame的duplicated方法返回一个布尔型Series,表示各行是否是重复行(前面出现过的行)。

drop_duplicates方法,返回一个DataFrame,重复的数组会标为False.

利用函数或映射进行数据转换

替换值

replace(被替换值,替换的值)

如果要一次性替换多个值,可以传入一个由待替换值组成的列表以及一个替换值: data.replace([-999, -1000], np.nan)

替换的也可以用一个列表。

重命名轴索引

跟Series中的值一样,轴标签也可以通过函数或映射进行转换,从而得到一个新的不同标签的对象。轴还可以被就地修改,而无需新建一个数据结构。

检测和过滤异常值

describe()方法,输出统计数据

根据数据的值是正还是负,np.sign(data)可以生成1或-1。

排列和随机采样

利用numpy.random.permutation函数可以轻松实现对Series或DataFrame的列的排 列工作(permuting,随机重排序)。

最新回复(0)