Skip to content

数据清洗与预处理

pandas尽可能的让我们对原始数据的处理变得简单。

自动对齐索引特性

pandas数据结构之间的四则运算,不存在的键将自动被补齐为NaN。之后对应数据进行运算,NaN运算产生的结果仍为NaN

缺失值处理

常见处理缺失值的方法

python
data = pd.Series(['a', 'b', 'c', np.nan])

isnull判断缺失值

python
data.isnull()
"""
0    False
1    False
2    False
3     True
dtype: bool
"""
data.notnull() # isnull的反函数

可以使用data[~data.isnull()] 或者 `data[data.notnull()]来过滤缺失值。

dropna过滤缺失值

python
data.dropna() # 过滤掉缺失值

"""
0    a
1    b
2    c
dtype: object
"""

Series上使用dropna,返回Series中所有的缺失值及其索引;

DataFrame上使用,默认情况下删除缺失值的。可以使用axis=1来改为列。how=all可以把行为改成删除掉所有值全为NA的行。

dropna返回一个新的对象。

其他参数参见文档。

fillna补全缺失值

python
data.fillna(0)
"""
0    a
1    b
2    c
3    0
dtype: object
"""

传入的参数必须是一个值或者一个字典。

对于DataFrame,在调用fillna的时候传入字典,则会为不同设定不同的填充值。

fillna返回一个新的对象,可以通过传入implace=True来修改原对象。

重复值处理

异常值处理

预处理

离散化

字符串

...