Pandas处理丢失数据
Posted anhoo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pandas处理丢失数据相关的知识,希望对你有一定的参考价值。
1、创建含NaN的矩阵
>>> dates = pd.date_range(‘20130101‘, periods=6) >>> df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns=[‘A‘,‘B‘,‘C‘,‘D‘]) >>> df.iloc[0,1] = np.nan >>> df.iloc[1,2] = np.nan >>> print(df) A B C D 2013-01-01 0 NaN 2.0 3 2013-01-02 4 5.0 NaN 7 2013-01-03 8 9.0 10.0 11 2013-01-04 12 13.0 14.0 15 2013-01-05 16 17.0 18.0 19 2013-01-06 20 21.0 22.0 23
2、pd.dropna():直接去掉有NaN的行或列
>>> df.dropna( ... axis=0, # 0: 对行进行操作; 1: 对列进行操作 ... how=‘any‘ # ‘any‘: 只要存在 NaN 就 drop 掉; ‘all‘: 必须全部是 NaN 才 drop ... ) A B C D 2013-01-03 8 9.0 10.0 11 2013-01-04 12 13.0 14.0 15 2013-01-05 16 17.0 18.0 19 2013-01-06 20 21.0 22.0 23
3、pd.fillna():将NaN的值用其他值代替,比如代替成0:
>>> df.fillna(value=0)
A B C D
2013-01-01 0 0.0 2.0 3
2013-01-02 4 5.0 0.0 7
2013-01-03 8 9.0 10.0 11
2013-01-04 12 13.0 14.0 15
2013-01-05 16 17.0 18.0 19
2013-01-06 20 21.0 22.0 23
4、pd.isnull():判断是否有缺失数据NaN,为True表示缺失数据
>>> df.isnull() A B C D 2013-01-01 False True False False 2013-01-02 False False True False 2013-01-03 False False False False 2013-01-04 False False False False 2013-01-05 False False False False 2013-01-06 False False False False
>>> np.any(df.isnull()) == True#检测在数据中是否存在 NaN
, 如果存在就返回 True
:
True
以上是关于Pandas处理丢失数据的主要内容,如果未能解决你的问题,请参考以下文章
pandas GroupBy上的方法apply:一般性的“拆分-应用-合并”
对“xxx”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。 错误解决一例。(代码片段