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