前言:
在处理数据的时候你会发现某些数据丢失,这种情况怎么办呢?Pandas 提供了一些方法来发现、剔除、替换数据结构中的缺失值,主要包括以下几种。
- 创建一个布尔类型的掩码标签缺失值。
isnull()
- 与 isnull() 操作相反。
notnull()
- 返回一个剔除缺失值的数据。
dropna()
- 返回一个填充了缺失值的数据副本。
fillna()
一、处理series对象
- 通过dropna滤除缺失数据:
data= pd.Series([1, np.nan, 'hello', None])print(data)data.dropna()
代码结果:
0 11 NaN2 hello3 Nonedtype: object0 12 hellodtype: object
- 通过布尔类型掩码也能滤除缺失对象:
data[data.notnull()]
代码结果:
0 12 hellodtype: object
二、处理DataFrame对象:
在处理DataFrame上使用它们时需要设置一些参数
df= pd.DataFrame([[1, np.nan, 2], [2, 3, 5], [np.nan, 4, 6]])df
代码结果:
- 默认情况下,dropna() 会剔除所有包含NaN的行或列:
df.dropna()
代码结果:
- dropna() 默认设置是 how='any',过滤掉全部为NaN的行或列:
df.dropna(axis='columns', how='all')
代码结果:
- 设置按不同的坐标轴剔除缺失值,比如 axis=1(或 axis='columns')会剔除任何包含 缺失值的整列数据
df.dropna(axis='columns')
代码结果:
- 传入thresh=n过滤掉n行或列:
df.dropna(axis='rows', thresh=3)
代码如下:
fillna()的参数比较多,单独放到下一次讲,如果有什么地方说的不好,欢迎在下面评论留言,如果觉得还可以,可以点击右上角的关注➕转发,私信回复python领取,学习资料一份,如果你想要其他资料也可以私信哦。