【Pandas】pandas DataFrame fillna

Pandas2.2 DataFrame

Missing data handling

方法描述
DataFrame.fillna([value, method, axis, …])用于填充 DataFrame 中的缺失值(NaN)

pandas.DataFrame.fillna()

pandas.DataFrame.fillna 方法用于填充 DataFrame 中的缺失值(NaN)。以下是该方法的参数说明及其功能:

参数说明
  • value: 用于填充缺失值的标量、字典、Series 或 DataFrame。如果为字典,键应为列名,值为对应的填充值。
  • method: 填充方法,可选值为 {'backfill', 'bfill', 'pad', 'ffill', None}。默认为 None
    • 'ffill''pad': 使用前向填充(即用前一个非缺失值填充)。
    • 'bfill''backfill': 使用后向填充(即用后一个非缺失值填充)。
  • axis: 指定沿哪个轴填充缺失值。0'index' 表示沿行填充,1'columns' 表示沿列填充。默认为 0
  • inplace: 如果为 True,则直接修改原 DataFrame,不返回新对象;如果为 False,则返回一个新的 DataFrame。默认为 False
  • limit: 指定连续填充的最大数量。默认为 None,表示不限制。
  • downcast: 类型转换选项,通常不常用。默认为 <no_default>
示例及结果
示例 1: 使用 value 参数
import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, 2, np.nan, 4],
    'B': [5, np.nan, np.nan, 8],
    'C': [9, 10, 11, 12]
})

print("原始 DataFrame:")
print(df)

filled_df = df.fillna(value=0)
print("\n填充后的 DataFrame (使用 fillna 并指定 value=0):")
print(filled_df)

结果:

原始 DataFrame:
     A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
2  NaN  NaN  11
3  4.0  8.0  12

填充后的 DataFrame (使用 fillna 并指定 value=0):
     A    B   C
0  1.0  5.0   9
1  2.0  0.0  10
2  0.0  0.0  11
3  4.0  8.0  12
示例 2: 使用 method 参数
df = pd.DataFrame({
    'A': [1, 2, np.nan, 4],
    'B': [5, np.nan, np.nan, 8],
    'C': [9, 10, 11, 12]
})

print("原始 DataFrame:")
print(df)

filled_df_ffill = df.fillna(method='ffill')
print("\n填充后的 DataFrame (使用 fillna 并指定 method='ffill'):")
print(filled_df_ffill)

filled_df_bfill = df.fillna(method='bfill')
print("\n填充后的 DataFrame (使用 fillna 并指定 method='bfill'):")
print(filled_df_bfill)

结果:

原始 DataFrame:
     A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
2  NaN  NaN  11
3  4.0  8.0  12

填充后的 DataFrame (使用 fillna 并指定 method='ffill'):
     A    B   C
0  1.0  5.0   9
1  2.0  5.0  10
2  2.0  5.0  11
3  4.0  8.0  12

填充后的 DataFrame (使用 fillna 并指定 method='bfill'):
     A    B   C
0  1.0  5.0   9
1  2.0  8.0  10
2  4.0  8.0  11
3  4.0  8.0  12
示例 3: 使用 inplace 参数
df = pd.DataFrame({
    'A': [1, 2, np.nan, 4],
    'B': [5, np.nan, np.nan, 8],
    'C': [9, 10, 11, 12]
})

print("原始 DataFrame:")
print(df)

df.fillna(value=0, inplace=True)
print("\n填充后的 DataFrame (使用 fillna 并设置 inplace=True):")
print(df)

结果:

原始 DataFrame:
     A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
2  NaN  NaN  11
3  4.0  8.0  12

填充后的 DataFrame (使用 fillna 并设置 inplace=True):
     A    B   C
0  1.0  5.0   9
1  2.0  0.0  10
2  0.0  0.0  11
3  4.0  8.0  12
示例 4: 使用 limit 参数
df = pd.DataFrame({
    'A': [1, 2, np.nan, np.nan, 4],
    'B': [5, np.nan, np.nan, 8, 9],
    'C': [9, 10, 11, 12, 13]
})

print("原始 DataFrame:")
print(df)

filled_df_limit = df.fillna(method='ffill', limit=1)
print("\n填充后的 DataFrame (使用 fillna 并设置 limit=1):")
print(filled_df_limit)

结果:

原始 DataFrame:
     A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
2  NaN  NaN  11
3  NaN  8.0  12
4  4.0  9.0  13

填充后的 DataFrame (使用 fillna 并设置 limit=1):
     A    B   C
0  1.0  5.0   9
1  2.0  5.0  10
2  2.0  NaN  11
3  NaN  8.0  12
4  4.0  9.0  13
示例 5: 使用字典作为 value 参数
df = pd.DataFrame({
    'A': [1, 2, np.nan, 4],
    'B': [5, np.nan, np.nan, 8],
    'C': [9, 10, 11, 12]
})

print("原始 DataFrame:")
print(df)

filled_df_dict = df.fillna({'A': 0, 'B': 100})
print("\n填充后的 DataFrame (使用 fillna 并传递字典作为 value 参数):")
print(filled_df_dict)

结果:

始 DataFrame:
     A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
2  NaN  NaN  11
3  4.0  8.0  12

填充后的 DataFrame (使用 fillna 并传递字典作为 value 参数):
     A      B   C
0  1.0    5.0   9
1  2.0  100.0  10
2  0.0  100.0  11
3  4.0    8.0  12

这些示例展示了 DataFrame.fillna 方法的不同用法及其效果。根据具体需求,可以选择合适的参数来填充缺失值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liuweidong0802

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值