📜  填充空列 – Pandas(1)

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

填充空列 - Pandas

在数据分析中,我们通常需要对缺失的值进行处理。Pandas中提供了许多函数来处理缺失值的情况。其中就包括填充空列。

填充空列指的是将DataFrame中的空列(缺失值)替换为特定的值。

语法
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)
参数
  1. value :用于填充空列的值。可以是标量,Series,DataFrame或者字典类型。
  2. method :指定一种填充方式。可以是ffill(向前填充)或bfill(向后填充)。
  3. axis :指定填充的轴。可以是0或1,0表示列,1表示行。
  4. inplace :是否修改原始数据,默认为False。
  5. limit :指定连续空列填充的最大个数。
  6. downcast :指定类型转换方式。
示例

首先创建一个包含空列的DataFrame:

import pandas as pd

data = {'A': [1, 2, 3, None, None], 'B': [4, None, 6, None, 8]}
df = pd.DataFrame(data)
print(df)

输出结果为:

     A    B
0  1.0  4.0
1  2.0  NaN
2  3.0  6.0
3  NaN  NaN
4  NaN  8.0
填充所有空列为特定值

我们可以使用fillna()函数来将所有的空列填充为特定的值:

df.fillna(0)

输出结果为:

     A    B
0  1.0  4.0
1  2.0  0.0
2  3.0  6.0
3  0.0  0.0
4  0.0  8.0
向前填充空列

如果我们希望使用前一个非空列的值来填充空列,可以使用method参数指定ffill

df.fillna(method='ffill')

输出结果为:

     A    B
0  1.0  4.0
1  2.0  4.0
2  3.0  6.0
3  3.0  6.0
4  3.0  8.0
向后填充空列

如果我们希望使用后一个非空列的值来填充空列,可以使用method参数指定bfill

df.fillna(method='bfill')

输出结果为:

     A    B
0  1.0  4.0
1  2.0  6.0
2  3.0  6.0
3  NaN  8.0
4  NaN  8.0
指定轴填充空列

上面的例子中,fillna()函数默认按列填充空列。如果需要按行填充,可以使用axis参数来指定轴:

df.fillna(method='ffill', axis=1)

输出结果为:

     A    B
0  1.0  4.0
1  2.0  2.0
2  3.0  6.0
3  NaN  NaN
4  NaN  8.0
限制连续填充的空列个数

有时候,我们不希望对所有的空列都进行填充,可以使用limit参数来限制连续填充的空列个数:

df.fillna(method='ffill', limit=1)

输出结果为:

     A    B
0  1.0  4.0
1  2.0  4.0
2  3.0  6.0
3  3.0  NaN
4  NaN  8.0
原地修改

上面的例子中,fillna()函数会返回一个新的DataFrame,原始的DataFrame并没有被修改。如果需要直接修改原始的DataFrame,可以将inplace参数设置为True

df.fillna(method='ffill', inplace=True)

这样,原始的DataFrame就被直接修改了。