📜  pandas replce none 与 nan - Python (1)

📅  最后修改于: 2023-12-03 15:03:28.488000             🧑  作者: Mango

Pandas replace None and NaN

在数据清洗与数据分析过程中,常常会遇到None和NaN这两种特殊值。在Python中,None表示空值,NaN则表示不是一个数。Pandas提供了一系列函数来处理这些特殊值。

replace函数
DataFrame.replace(to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad')

该函数可将DataFrame中指定的特定值或者类型进行替换。

  • to_replace:被替换的内容。
  • value:替换后的值。
  • inplace:是否在原DataFrame中进行替换。
  • limit:可以指定最多替换的个数。
  • regex:是否使用正则表达式。
  • method:当to_replace和value是列表时,用于指定处理的方式。方法有'pad'、'backfill'和'nearest'。
import pandas as pd

df = pd.DataFrame({'A': [1, None, 3], 'B': ['a', 'b', None]})

df.replace(None, 0, inplace=True)
df.replace('b', 'new_value', inplace=True)

print(df)

输出结果为:

   A          B
0  1          a
1  0  new_value
2  3       None

在上述例子中,我们先将DataFrame中的None替换为0,然后再将B列中的b替换为new_value。

fillna函数
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)

该函数可将DataFrame中的NaN替换为指定的值。

  • value:替换后的值。
  • method:用于对NaN进行填充的方式,可选'ffill'和'bfill',即向前填充和向后填充。
  • axis:指定填充的方向,可选值为0和1,0表示沿着行填充,1表示沿着列填充。
  • inplace:是否在原DataFrame中进行替换。
  • limit:可以指定最多替换的个数。
  • downcast:用于降低填充后的数据类型。
import pandas as pd

df = pd.DataFrame({'A': [1, None, 3], 'B': ['a', 'b', None]})

df.fillna(0, inplace=True)

print(df)

输出结果为:

   A  B
0  1  a
1  0  b
2  3  0

在上述例子中,我们先将DataFrame中的NaN替换为0,这里使用了fillna函数,将NaN替换为0,并将替换后的结果存储到原变量中。