Pandas缺失值填充 df.fillna()的实现

Pandas是目前数据分析中最广泛应用的数据处理工具之一,而数据中缺失值的处理也是工作中非常常见和必不可少的一环,这时候就需要用到Pandas提供的fillna()函数。

一、fillna()函数参数详解
首先来看一下fillna()函数的参数,常用的参数如下:

  • value:指定填充缺失值的具体值,可以是一个标量值,也可以是一个Series或DataFrame类型的数据。
  • method:指定填充缺失值的方法,可选参数包括'ffill'、'bfill',前者表示用缺失值前面的数值来填充,后者则是用后面的数值填充缺失值。
  • axis:指定填充的方向,0表示按列填充,1表示按行填充。
  • inplace:是否原地修改数据,True表示直接修改原有DataFrame的数据,False表示返回新的DataFrame数据。

二、fillna()函数使用示例
下面通过两个简单的示例,来介绍fillna()函数在实际中的使用方法。

示例一:
我们定义一个DataFrame类型的数据,其中存在一些缺失值,我们将使用fillna()函数对其进行填充。

import pandas as pd
import numpy as np

# 定义一个DataFrame数据
data = {'name': ['Tom', np.nan, 'Jerry', 'Kevin'],
        'age': [20, np.nan, 22, 19],
         'gender': [np.nan, 'male', 'female', np.nan]}

df = pd.DataFrame(data)

# 查看缺失值
print(df.isnull())

# 对DataFrame数据进行填充
result = df.fillna(value={'name': 'Unknown', 'age': 0, 'gender': 'unknown'})
print(result)

运行结果如下:

     name    age  gender
0   False  False    True
1    True   True   False
2   False  False   False
3   False  False    True
     name  age   gender
0     Tom   20  unknown
1  Unknown    0     male
2   Jerry   22   female
3   Kevin   19  unknown

在这个示例中,我们定义了一个DataFrame数据,其中存在三个列,其中有两个缺失值。通过fillna()函数,我们将缺失值填充为了Unknown(名字列)、0(年龄列)和unknown(性别列)。

示例二:
在实际的工作中,我们有时候需要对连续的缺失值进行填充。比如下面的例子,我们要将连续的NaN值填充成连续的数字(从1开始)。

import pandas as pd 
import numpy as np 

# 定义一个DataFrame数据
data = {'name': ['Tom', np.nan, 'Jerry', 'Kevin', np.nan, np.nan],
        'age': [20, np.nan, 22, np.nan, np.nan, 18],
         'gender': [np.nan, 'male', 'female', 'male', 'unknown', 'male']}

df = pd.DataFrame(data)

# 查看缺失值
print(df.isnull())

# 对DataFrame数据进行填充
result = df.fillna(method='ffill', limit=2)
print(result)

运行结果如下:

     name    age  gender
0   False  False    True
1    True   True   False
2   False  False   False
3    True   True   False
4    True   True   False
5    True  False   False
     name   age   gender
0     Tom  20.0  unknown
1     Tom  20.0     male
2   Jerry  22.0   female
3   Jerry  22.0     male
4   Jerry  22.0  unknown
5   Jerry  18.0     male

在这个示例中,我们引入了limit参数来限制连续填充的个数。使用method='ffill'表示将缺失值前面的数值作为填充值,这里限制了最多连续填充了两个缺失值。可以看到,结果中连续的NaN值已经被填充成了连续的数字了。

三、总结
fillna()函数是Pandas数据处理常见功能之一,其能够高效地对DataFrame数据中出现的缺失值(NaN值)进行处理,使得数据的处理过程变得更加顺畅和精确。在使用该函数时,需要仔细地考虑其参数和使用方式。如果掌握得好,将可以在工作和研究中处理各类数据问题。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas缺失值填充 df.fillna()的实现 - Python技术站

(0)
上一篇 2023年6月13日
下一篇 2023年6月13日

相关文章

  • pandas中NaN缺失值的处理方法

    当我们处理数据的时候,经常会遇到缺失值的情况,这时需要使用pandas提供的一些函数来处理NaN缺失值。下面,我将为大家详细介绍pandas中NaN缺失值的处理方法: 查看缺失值 使用pandas中的isnull()函数可以查看缺失值,该函数会返回一个布尔值的DataFrame,缺失值处为True,否则为False。 import pandas as pd …

    python 2023年6月13日
    00
合作推广
合作推广
分享本页
返回顶部