📅  最后修改于: 2023-12-03 15:18:14.676000             🧑  作者: Mango
Pandas 是 Python 中一个强大的数据分析和处理库。其中一个非常有用的功能是填空(fillna),允许我们用一个值(例如平均数、零、前一个值等)来填补缺失的值。
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs)
value
:用于填充缺失值的标量值、字符串,字典等对象。method
:可选参数,用于确定填充缺失值的方法。此参数默认值为 None
,表示使用 value
参数的值进行填充。支持的值包括:ffill
/ pad
:向前填充缺失值。bfill
/ backfill
:向后填充缺失值。axis
:指定了填充方向。默认情况下,该参数值为 None
,表示在任意方向上进行填充。支持的值包括:0
/ 'index'
:沿着纵轴方向填充。1
/ 'columns'
:沿着横轴方向填充。inplace
:可选参数,是否在原 DataFrame 上进行填充。默认情况下,该参数值为 False
,表示不修改原 DataFrame,而是返回一个新的填充好的 DataFrame。limit
:指定了填充连续缺失值的最大数量的整数。此参数默认值为 None
,表示没有最大数量限制。downcast
:可选参数,指定了向下转换缺失值的方法。默认情况下,此参数值为 None
,表示不进行下转换。首先,让我们来看一个简单的例子,其中包含缺少值的 DataFrame:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan, 4], 'B': [5, np.nan, 7, 8], 'C': [np.nan, 10, 11, np.nan]})
print(df)
输出:
A B C
0 1.0 5.0 NaN
1 2.0 NaN 10.0
2 NaN 7.0 11.0
3 4.0 8.0 NaN
我们可以使用 fillna
方法来填充缺失值:
# 使用 0 填充缺失值
df.fillna(0, inplace=True)
print(df)
输出:
A B C
0 1.0 5.0 0.0
1 2.0 0.0 10.0
2 0.0 7.0 11.0
3 4.0 8.0 0.0
接下来,我们来看一下如何利用前一个和后一个值填充缺失值:
# 使用前一个值填充缺失值
df.fillna(method='ffill', inplace=True)
print(df)
# 使用后一个值填充缺失值
df.fillna(method='bfill', inplace=True)
print(df)
输出:
A B C
0 1.0 5.0 NaN
1 2.0 5.0 10.0
2 2.0 7.0 11.0
3 4.0 8.0 11.0
A B C
0 1.0 5.0 10.0
1 2.0 5.0 10.0
2 4.0 7.0 11.0
3 4.0 8.0 NaN
最后,让我们来看一下如何针对特定的列进行填充:
# 对 B 列和 C 列分别进行填充
df['B'].fillna(method='ffill', inplace=True)
df['C'].fillna(method='bfill', inplace=True)
print(df)
输出:
A B C
0 1.0 5.0 10.0
1 2.0 5.0 10.0
2 4.0 7.0 11.0
3 4.0 8.0 11.0
这就是 Pandas 中填空的一些用法。希望这篇文章能够帮助到大家。