pandas库学习之DataFrame.fillna函数

pandas库学习之DataFrame.fillna函数

一、简介

pandas.DataFrame.fillna函数用于填充DataFrame中的缺失值(NaN)。可以用指定的值、方法或前后的值来填充。

二、语法和参数

DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)
参数:
  • value:标量、字典、Series或DataFrame,表示用来填充缺失值的值

  • method:{backfill, bfill, pad, ffill}, 可选,表示用前面的值或后面的值来填充。

    • backfill / bfill:用后面的非缺失值填充当前的缺失值。
    • pad / ffill:用前面的非缺失值填充当前的缺失值。
  • axis:{0或index, 1或columns},默认值为0,表示填充的轴。

  • inplace:布尔值,默认值为False,表示是否在原地修改DataFrame。

  • limit:整数,可选,表示每个字段填充的最大数量。

  • downcast:字典,可选,表示控制转换到更低数据类型。

三、实例

3.1 用指定值填充缺失值
import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, 2, np.nan, 4],
    'B': [np.nan, 2, 3, 4],
    'C': [1, np.nan, np.nan, 4]
})

filled_df = df.fillna(0)

print(filled_df)

输出:

     A    B    C
0  1.0  0.0  1.0
1  2.0  2.0  0.0
2  0.0  3.0  0.0
3  4.0  4.0  4.0
3.2 用前面的值填充缺失值
import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, 2, np.nan, 4],
    'B': [np.nan, 2, 3, 4],
    'C': [1, np.nan, np.nan, 4]
})

filled_df = df.fillna(method='ffill')

print(filled_df)

输出:

     A    B    C
0  1.0  NaN  1.0
1  2.0  2.0  1.0
2  2.0  3.0  1.0
3  4.0  4.0  4.0

(0,B)位置任然为NaN是因为其前面没有东西可供填充了

四、注意事项

  1. 使用inplace=True参数可以直接在原DataFrame上进行修改,而不返回新的DataFrame。
  2. method参数允许使用前后值填充,这在处理时间序列数据时非常有用。
  3. 当使用limit参数时,可以控制每个连续缺失值段的最大填充数量。
  4. 填充缺失值时,应注意数据类型的变化,特别是在使用downcast参数时,可以控制将填充值转换为更低的数据类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值