下面是关于Python Pandas 消除空值和空格以及NaN数据替换方法的完整攻略。
消除空值和空格
在 Pandas 中,可以使用函数dropna()
来删除空值,使用函数 strip()
来去除字符串空格。
删除空值
删除空值前,需要先判断哪些值是空值。在 Pandas 中,空值会被表示为 NAN
或 None
。
删除空值的方法如下:
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、前一个有效值或后一个有效值。