pandas 个连续值的聚合

Aggregation in pandas of consecutive values

我想在数据框中指出温度是否低于 15°C。如何更高效?

df['Was cold'] = df['Temperature']<15
df['Jacket needed'] = False
for i in range(len(df)-8):
    df.iloc[i].loc['Jacked needed'] = df.iloc[i:(i+8)]['Was cold'].any()

数据按时间排序,每条记录代表一个小时。 df['Was cold']表示温度是否低于15℃。 df['Jacket needed']表示在接下来的8小时内至少有一个天气很冷,如果我必须出门,我需要一件夹克。

下面的方法行得通吗?

df['Jacket needed'] = df['Was cold'].rolling(window=8).sum().shift(-7) > 0