Pandas fillna()方法的使用

Pandas fillna()方法的使用

参考:pandas fillna()

在数据分析中,处理缺失值是一个常见的任务,pandas 提供了多种方法来处理 DataFrame 中的缺失值。fillna() 方法是 pandas 中用来填充缺失值的一个非常有用的函数。本文将详细介绍 fillna() 方法的使用,包括其语法、参数以及多个实际的示例代码。

1. fillna() 方法简介

fillna() 方法用于填充 DataFrame 中的 NaN 值。这个方法提供了多种填充方式,包括使用常数值填充、前向填充、后向填充等。使用 fillna() 可以很方便地处理数据中的缺失值,提高数据的质量。

2. fillna() 方法的语法

fillna() 方法的基本语法如下:

DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)

参数说明:

  • value: 标量、字典、序列或 DataFrame。用于填充缺失值的值。
  • method: {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}。填充方法。
  • axis: {0 or ‘index’, 1 or ‘columns’}。沿着哪个轴填充。
  • inplace: bool,默认为 False。如果为 True,则在原地修改数据。
  • limit: int,默认为 None。如果方法是 pad 或 ffill,则这是连续的填充的最大数量;如果方法是 backfill 或 bfill,则这是连续的填充的最大数量。
  • downcast: dict,默认为 None。一个字典,其键是列名,其值是 numpy 数据类型。如果可能,将尝试将列转换为这些类型。

3. 使用常数值填充

示例代码 1: 使用单一常数填充所有缺失值

import pandas as pd
import numpy as np

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [24, np.nan, 22, 25],
        'City': ['New York', 'Los Angeles', 'Chicago', 'pandasdataframe.com']}
df = pd.DataFrame(data)
df.fillna(0)
print(df)

Output:

Pandas fillna()方法的使用

示例代码 2: 使用字典为不同列指定不同的填充值

import pandas as pd
import numpy as np

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [24, np.nan, 22, 25],
        'City': ['New York', 'Los Angeles', 'Chicago', 'pandasdataframe.com']}
df = pd.DataFrame(data)
df.fillna({'Age': 20, 'City': 'Unknown'})
print(df)

Output:

Pandas fillna()方法的使用

4. 使用前向填充或后向填充

示例代码 3: 使用前向填充

import pandas as pd
import numpy as np

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [24, np.nan, 22, 25],
        'City': ['New York', 'Los Angeles', 'Chicago', 'pandasdataframe.com']}
df = pd.DataFrame(data)
df.fillna(method='ffill')
print(df)

示例代码 4: 使用后向填充

import pandas as pd
import numpy as np

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [24, np.nan, 22, 25],
        'City': ['New York', 'Los Angeles', 'Chicago', 'pandasdataframe.com']}
df = pd.DataFrame(data)
df.fillna(method='bfill')
print(df)

5. 使用 axis 参数

示例代码 5: 沿着列轴进行前向填充

import pandas as pd
import numpy as np

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [24, np.nan, 22, 25],
        'City': ['New York', 'Los Angeles', 'Chicago', 'pandasdataframe.com']}
df = pd.DataFrame(data)
df.fillna(method='ffill', axis=1)
print(df)

示例代码 6: 沿着行轴进行后向填充

import pandas as pd
import numpy as np

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [24, np.nan, 22, 25],
        'City': ['New York', 'Los Angeles', 'Chicago', 'pandasdataframe.com']}
df = pd.DataFrame(data)
df.fillna(method='bfill', axis=0)
print(df)

6. 使用 limit 参数控制填充数量

示例代码 7: 限制前向填充的数量

import pandas as pd
import numpy as np

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [24, np.nan, np.nan, 25],
        'City': ['New York', 'Los Angeles', 'Chicago', 'pandasdataframe.com']}
df = pd.DataFrame(data)
df.fillna(method='ffill', limit=1)
print(df)

示例代码 8: 限制后向填充的数量

import pandas as pd
import numpy as np

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [24, np.nan, np.nan, 25],
        'City': ['New York', 'Los Angeles', 'Chicago', 'pandasdataframe.com']}
df = pd.DataFrame(data)
df.fillna(method='bfill', limit=1)
print(df)

7. 使用 inplace 参数

示例代码 9: 在原地修改 DataFrame

import pandas as pd
import numpy as np

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [24, np.nan, 22, 25],
        'City': ['New York', 'Los Angeles', 'Chicago', 'pandasdataframe.com']}
df = pd.DataFrame(data)
df.fillna(0, inplace=True)
print(df)

Output:

Pandas fillna()方法的使用

8. 使用 downcast 参数

示例代码 10: 尝试向下转换数据类型

import pandas as pd
import numpy as np

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [24.0, np.nan, 22.0, 25.0],
        'City': ['New York', 'Los Angeles', 'Chicago', 'pandasdataframe.com']}
df = pd.DataFrame(data)
df.fillna(0, downcast={'Age': 'int'})
print(df)

以上是 fillna() 方法的详细介绍和多个实用的示例代码。通过这些示例,可以看到 fillna() 方法在处理缺失值时的灵活性和强大功能。在实际的数据处理过程中,根据数据的具体情况选择合适的参数,可以有效地解决缺失值问题。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程