📜  pandas 填空 - Python (1)

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

Pandas 填空 - Python

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 中填空的一些用法。希望这篇文章能够帮助到大家。