【问题标题】:Pandas fillna() with last week's value on entire dataframe for time-series data带有上周时间序列数据整个数据帧值的 Pandas fillna()
【发布时间】:2022-11-03 20:03:14
【问题描述】:

我有一些时间序列数据。我需要为某些计算填充空值。我知道我可以使用 fillna() 和 method='ffill' 来用前一个值估算空值。

df.fillna(method='ffill')

我也知道我可以使用 np.where() 和 .shift(7) 获取特定列的前几周的值:

df['col1'] = np.where(df.col1.isnull(), df.col1.shift(7), df.col1)

有没有办法用.fillna()一次对整个数据框执行此操作?

【问题讨论】:

    标签: python pandas time-series


    【解决方案1】:

    如果我正确理解您的问题,您想用 7 天前的值填充 NaN。

    在这种情况下,只需使用

    df = df.fillna(df.shift(7))
    

    这将一次性适用于整个数据框。

    【讨论】:

      【解决方案2】:

      如果我想要之前和之后每周的一天的价值呢? 假设我没有这个星期一的值,但我有前一个和第二个星期一的值,我想获取所有星期一的值并将其添加为缺少的星期一值作为平均值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-18
        • 1970-01-01
        • 2020-12-04
        • 1970-01-01
        • 2022-01-12
        • 2020-02-07
        • 1970-01-01
        • 2022-01-06
        相关资源
        最近更新 更多