【问题标题】:Imputing NAN values by pandas forward fill method with set pattern通过带有集合模式的 pandas 前向填充方法估算 NAN 值
【发布时间】:2025-11-26 17:10:01
【问题描述】:

假设我正在处理一个数据集,其中有一个列名“F_N”,其中包含按 10、20、30、nan、50、nan、70 之类的顺序排列的数值。在这里,我希望这些空位置填充 40 , 和 60 在熊猫的帮助下在各自的地方。我知道 fillna(method=ffill),但它会给我们 30 和 50 个精确值,而不是模式。

【问题讨论】:

    标签: pandas dataframe


    【解决方案1】:

    interpolate使用线性插值:

    df['F_N'] = df['F_N'].interpolate()
    
    >>> df
        F_N
    0  10.0
    1  20.0
    2  30.0
    3  40.0
    4  50.0
    5  60.0
    6  70.0
    

    【讨论】:

    • df['F_N] = df.F_N.interpolate()
    【解决方案2】:

    您描述了一个缺少值的序列。 fillna() 可以拍一个系列。因此最简单的是填充期望值。下面的代码演示了这一点:

    import pandas as pd
    import numpy as np
    df = pd.DataFrame({"F_N":range(0,101,10)})
    df.loc[np.random.choice(df.index,5)] = np.nan
    df["fill"] = df["F_N"].fillna(pd.Series(range(0,101,10)))
    
    

    输出

    F_N fill
    0 nan 0
    1 10 10
    2 20 20
    3 30 30
    4 nan 40
    5 nan 50
    6 60 60
    7 70 70
    8 nan 80
    9 90 90
    10 100 100

    【讨论】: