数据清洗与预处理
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
来修改原对象。
重复值处理
异常值处理
预处理
离散化
字符串
...