fillna() 函数是 pandas 库中一个用于填充缺失值的函数。缺失值通常用 NaN(Not a Number)或 None 表示。fillna() 函数可以用指定的值或方法填充缺失值。
使用语法如下:
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)
参数说明如下:
- value: 填充缺失值的标量值或字典对象,其中键是需要填充的列名,值是对应的填充值。
- method: 填充缺失值的方法,可选的值有 'backfill'、'bfill'、'pad'、'ffill'。
- axis: 指定填充缺失值的轴,可选的值有 0、'index'、1、'columns',其中 0 或 'index' 表示填充行方向上的缺失值,1 或 'columns' 表示填充列方向上的缺失值。
- inplace: 是否对原 DataFrame 进行就地修改,默认为 False。
- limit: 沿轴填充缺失值的最大数量。
- downcast: 指定缺失值填充之后的数据类型,常用的有 'infer'、'integer'、'signed'、'unsigned'、'float'。
下面是 fillna() 函数的应用示例:
import pandas as pd
# 创建一个包含缺失值的 DataFrame
data = {'A': [1, 2, None, 4, None],
'B': [None, 6, 7, 8, None],
'C': [9, None, 11, None, 13]}
df = pd.DataFrame(data)
# 使用指定的值填充缺失值
df_filled = df.fillna(0)
print(df_filled)
# 使用字典对象填充缺失值
fill_values = {'A': -1, 'B': -2, 'C': -3}
df_filled = df.fillna(fill_values)
print(df_filled)
# 使用前向填充方法填充缺失值
df_filled = df.fillna(method='ffill')
print(df_filled)
# 使用后向填充方法填充缺失值
df_filled = df.fillna(method='bfill')
print(df_filled)
# 填充行方向上的缺失值
df_filled = df.fillna(method='ffill', axis=0)
print(df_filled)
# 填充列方向上的缺失值
df_filled = df.fillna(method='ffill', axis=1)
print(df_filled)
以上示例代码输出的结果分别为:
A B C
0 1.0 0.0 9.0
1 2.0 6.0 0.0
2 0.0 7.0 11.0
3 4.0 8.0 0.0
4 0.0 0.0 13.0
A B C
0 1.0 -2.0 9.0
1 2.0 6.0 7.0
2 -1.0 7.0 11.0
3 4.0 8.0 -3.0
4 -1.0 -2.0 13.0
A B C
0 1.0 NaN 9.0
1 2.0 6.0 9.0
2 2.0 6.0 11.0
3 4.0 8.0 11.0
4 4.0 8.0 13.0
A B C
0 1.0 6.0 9.0
1 2.0 6.0 11.0
2 4.0 6.0 11.0
3 4.0 8.0 13.0
4 NaN NaN NaN
A B C
0 1.0 6.0 9.0
1 2.0 6.0 7.0
2 2.0 7.0 11.0
3 4.0 8.0 13.0
4 NaN NaN NaN
A B C
0 1.0 9.0 9.0
1 2.0 6.0 7.0
2 2.0 7.0 11.0
3 4.0 8.0 13.0
4 NaN NaN NaN
其中,第一个填充了缺失值为指定的值或字典对象,第二个使用了前向填充方法,第三个使用了后向填充方法,第四个和第五个分别填充了行方向和列方向上的缺失值。