python pandas消除空值和空格以及 Nan数据替换方法

  • Post category:Python

下面是关于Python Pandas 消除空值和空格以及NaN数据替换方法的完整攻略。

消除空值和空格

在 Pandas 中,可以使用函数dropna()来删除空值,使用函数 strip()来去除字符串空格。

删除空值

删除空值前,需要先判断哪些值是空值。在 Pandas 中,空值会被表示为 NANNone

删除空值的方法如下:

import pandas as pd
import numpy as np

# 创建包含空值的数据集
df = pd.DataFrame([[1, 2, 3], [np.nan, 5, np.nan], [7, 8, 9], [np.nan, np.nan, np.nan]])
df.columns = ['A', 'B', 'C']
print(df)
# Output:
#      A    B    C
# 0  1.0  2.0  3.0
# 1  NaN  5.0  NaN
# 2  7.0  8.0  9.0
# 3  NaN  NaN  NaN

# 删除包含空值的行或列
df.dropna(axis=0, how='all') # 删除所有值都为nan的行
df.dropna(axis=1, how='any') # 删除空值所在的列

上述代码中,how='all' 表示删除全为 NaN 的行,how='any' 表示删除包含 NaN 的行。

去除字符串空格

可以使用 Pandas 的 strip() 函数来去除字符串空格,下面是示例:

import pandas as pd

# 创建含有空格的字符串
df = pd.DataFrame([' Apple ', ' Bananas', 'Oranges '], columns=['fruits'])
print(df)

# 使用 strip() 函数去除空格
df['fruits'] = df['fruits'].str.strip()
print(df)

该代码会去除字符串两端的空格,并输出结果,输出结果如下:

    fruits
0   Apple 
1  Bananas
2  Oranges 

    fruits
0    Apple
1  Bananas
2  Oranges

替换NaN数据

在 Pandas 中,只需要使用 fillna() 函数来进行此项任务。

使用 fillna() 函数的方法如下:

import pandas as pd
import numpy as np

# 创建含有 NaN 的数据集
df = pd.DataFrame([[1, 2, np.nan], [4, np.nan, 6], [7, 8, 9]])
df.columns = ['A', 'B', 'C']
print(df)

# 替换 NaN 值
df.fillna(0)    # 将 NaN 替换为 0
df.fillna(method='ffill')   # 将 NaN 替换为前一个有效值
df.fillna(method='bfill')   # 将 NaN 替换为后一个有效值

上述代码中,使用 fillna() 函数将数据中的 NaN 值替换为 0、前一个有效值或后一个有效值。