在日常我们获取的数据中,经常会出现数据缺失的情况。对数据缺失的处理,有多种处理的方法:插值填补、平均值填补方法很多。这里不具体讨论用哪种方式去插补这些数据,而只是谈谈如何使用pandas去快速的处理这些数据。
pandas 常用np.nan代表缺失数据,详情可以查看Missing Data section。
1、 reindex()可以允许你在指定维度上修改、增加、删除索引,并返回数据的副本:
df1 = df.reindex(index=dates[0:4], columns=list(df.columns) + [‘E‘]) df1.loc[dates[0]:dates[1],‘E‘] = 1 df1 A B C D F E 2013-01-01 0.000000 0.000000 -1.509059 5 NaN 1.0 2013-01-02 1.212112 -0.173215 0.119209 5 1.0 1.0 2013-01-03 -0.861849 -2.104569 -0.494929 5 2.0 NaN 2013-01-04 0.721555 -0.706771 -1.039575 5 3.0 NaN
2、丢弃有缺失的行 dropna
可以是dropna(axis=xx),增加参数从而只清理一个维度的值
注意:这里显示的是返回的副本的值,而不是原始的值
3、填充空值
>>> df2.fillna(value=9.9) A B C D E F 2017-01-01 1.500000 2.500000 0.123356 -1.798571 9.9 1 2017-01-02 -0.459646 0.520100 0.511138 0.183975 9.9 2 2017-01-03 0.463326 -0.970487 -1.120780 -0.614481 5.0 3 2017-01-04 1.505464 -1.743313 1.020903 -1.049047 5.0 4
4、用布尔型标识那些是空值
>>> pd.isnull(df2) A B C D E F 2017-01-01 False False False False True False 2017-01-02 False False False False True False 2017-01-03 False False False False False False 2017-01-04 False False False False False False
5、用前置值或者后置值填充空值 fillna(method=xxx)
method中的backfill是后向,pad代表前向。该方法对于reindex一样适用。
时间: 2024-10-06 04:06:27