pandas fillna_如何处理Pandas里的缺失值(入门篇2)

pandas fillna_如何处理Pandas里的缺失值(入门篇2)_第1张图片

在使用python里的pandas库进行数据分析工作时,很多时候我们都会遇到这样一个问题:数据缺失。这也是大部分数据分析工作所会遇到的之一。而正确处理缺失值,也是我们在数据分析中数据预处理环节的关键的一环。下面我将讲讲在我学习Pandas的时候,对缺失值处理的一些总结(入门篇2).

这一次我们来说说如何使用fillna()函数填充缺失值。

(2)填充(fillna)

函数

函数作用:填充缺失值

主要参数:

  1. value:需要用什么值去填充缺失值
  2. axis:确定填充维度,从行开始或是从列开始
  3. method:填充缺失值所用的方法。
  4. limit:确定填充的个数,如果limit=2,则只填充两个缺失值。
  • 下面我们举几个例子

首先还是先生成我们实验用的数据:

import pandas as pd
import numpy as np
df = pd.DataFrame([[np.nan, 2, np.nan, 0],
                  [3, 4, np.nan, 1],
                 [np.nan, np.nan, np.nan, 5],
                [np.nan, 3, np.nan, 4]],
                 columns=list('ABCD'))
df

pandas fillna_如何处理Pandas里的缺失值(入门篇2)_第2张图片

(1)ffill:用缺失值前面的一个值代替缺失值,如果axis =1,那么就是横向的前面的值替换后面的缺失值,如果axis=0,那么则是上面的值替换下面的缺失值。横向用缺失值前面的值替换缺失值"/"纵向用缺失值上面的值替换缺失值",

这一种方法,都是用缺失值前面的值对缺失值进行填充。(行/列都可以指定)

(2)backfill/bfill:缺失值后面的一个值代替前面的缺失值(具体用法与前面类似)。

注意~用这种方法时不能与value同时出现。

以下以ffill为例:

df.fillna(axis=1,method='ffill')

pandas fillna_如何处理Pandas里的缺失值(入门篇2)_第3张图片
 df.fillna(axis=0,method='ffill')

pandas fillna_如何处理Pandas里的缺失值(入门篇2)_第4张图片

(bfill的用法与上面一致,我们就不举例了)

(3)用指定的值进行填充。

下面我们以填充0为例:

df.fillna(0)

pandas fillna_如何处理Pandas里的缺失值(入门篇2)_第5张图片

可以看到,缺失值都被填充成0.

(4)针对不同的列,我们用不同的值填充(行也是类似用法):

trans={"A":9,"B":8,"C":7,"D":6}
df.fillna(value=trans)

pandas fillna_如何处理Pandas里的缺失值(入门篇2)_第6张图片

(5)还是针对不同的列,我们用不同的值填充,但是这一次我们试着用limit对填充的次数进行限制,也就是说,对每列出现的替换值,我们都可以进行替换次数的限制:

下面我们对替换值限制为每列只替换一次。

trans={"A":9,"B":8,"C":7,"D":6}
df.fillna(value=trans,limit=1)

pandas fillna_如何处理Pandas里的缺失值(入门篇2)_第7张图片

(6)使用均值mean( )的方法进行缺失值填充:(注意下面两种的不同)

pandas fillna_如何处理Pandas里的缺失值(入门篇2)_第8张图片

pandas fillna_如何处理Pandas里的缺失值(入门篇2)_第9张图片

由于在本例中,只有A、B列符合均值填充的条件,因此我们是否指定A、B列,在本例中不影响。

在实际工作和学习中,针对缺失值填充还有许多更高级的做法,由于本篇是入门向,因此未做提及,未来有时间将为大家介绍关于缺失值填充更高级的做法(机器学习等)。


以上便是<如何处理Pandas里的缺失值(入门篇2)>的内容,欢迎感兴趣的小伙伴一起讨论、学习,更多内容请看我的其他文章。

你可能感兴趣的:(pandas,fillna)