📜  使用 fillna 替换 nan - Python (1)

📅  最后修改于: 2023-12-03 14:49:39.401000             🧑  作者: Mango

使用 fillna 替换 NaN - Python

在数据处理过程中,经常会遇到缺失值(NaN)的情况。NaN 是 Pandas 库中用来表示缺失值的浮点数。为了处理缺失值,Pandas 提供了 fillna() 函数,它可以用指定的值或方法来替换 NaN。

本文将介绍如何使用 fillna() 函数来替换 NaN 值,并提供一些丰富的示例。以下是使用 fillna() 函数处理 NaN 的基本语法:

dataframe.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)
参数说明
  • value: 要用来替换缺失值的标量、字典、Series 或 DataFrame。
  • method: 可选参数,用于指定替换缺失值的方法。可选的方法包括 Noneffillbfill 等。
  • axis: 指定轴的方向,用于指示在哪个轴上进行填充操作。
  • inplace: 可选参数,指示是否在原始 DataFrame 上进行更改。
  • limit: 可选参数,用于限制每列/行的连续填充数目。
  • downcast: 可选参数,用于指定更小的数据类型以节省内存。
示例

下面是一些示例,演示了如何使用 fillna() 函数替换 NaN 值。

1. 用指定的值替换 NaN
import pandas as pd

data = {'A': [1, 2, NaN], 'B': [NaN, 5, NaN]}
df = pd.DataFrame(data)

df.fillna(0)

输出结果:

   A    B
0  1  0.0
1  2  5.0
2  0  0.0
2. 用前一个非缺失值替换 NaN(向前填充)
import pandas as pd

data = {'A': [1, 2, NaN, 4, NaN], 'B': [NaN, 5, NaN, NaN, 8]}
df = pd.DataFrame(data)

df.fillna(method='ffill')

输出结果:

   A    B
0  1  NaN
1  2  5.0
2  2  5.0
3  4  5.0
4  4  8.0
3. 用后一个非缺失值替换 NaN(向后填充)
import pandas as pd

data = {'A': [1, NaN, 3, NaN, 5], 'B': [NaN, NaN, NaN, 8, 9]}
df = pd.DataFrame(data)

df.fillna(method='bfill')

输出结果:

   A    B
0  1  8.0
1  3  8.0
2  3  8.0
3  5  8.0
4  5  9.0
4. 在指定轴上填充 NaN
import pandas as pd

data = {'A': [1, 2, NaN], 'B': [NaN, 5, NaN]}
df = pd.DataFrame(data)

df.fillna(0, axis=1)

输出结果:

     A    B
0  1.0  0.0
1  2.0  5.0
2  0.0  0.0
5. 替换到原始 DataFrame
import pandas as pd

data = {'A': [1, 2, NaN], 'B': [NaN, 5, NaN]}
df = pd.DataFrame(data)

df.fillna(0, inplace=True)
df

输出结果:

   A    B
0  1  0.0
1  2  5.0
2  0  0.0

以上是使用 fillna() 函数替换 NaN 的一些示例。你可以根据具体的需求选择合适的替换方法和参数。

希望本文对你理解如何处理缺失值有所帮助!