Pandas fillna() 对时间序列数据的整个数据帧的上周值

Pandas fillna() with last week's value on entire dataframe for time-series data

我有一些时间序列数据。我需要为某些计算填充空值。我知道我可以将 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() 一次对整个数据帧执行此操作?

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

在那种情况下,只需使用

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

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