自学内容网 自学内容网

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参数时,可以控制将填充值转换为更低的数据类型。

原文地址:https://blog.csdn.net/qq_46396470/article/details/140531360

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!