如何在Pandas数据框中汇总列的底部X行?

时间:2020-03-04 23:01:59

标签: python pandas

每个小时,我都会通过API获取当前的天气数据。当前天气数据将附加到数据框的底部:

df = df.append([current_weather], sort=False, ignore_index=True)

当前的天气数据包括过去一小时(降水量_1h)的降水总量。

我也有一个专栏,提供24小时的总降水量(降水量_1d)。我只想为附加行而不是整个列计算该值(因此,我不想使用df.rolling)。

这就是我尝试过的...

此代码跳过了下一行(即最新的降水_1h值):

df.at[current_weather['timestamp'], 'precipitation_1d'] = df.iloc[-1:-25 , df.columns.get_loc('precipitation_1h')].sum()

此代码包含太多行(我认为已包含所有行,并且对底部25行进行了两次计数):

df.at[current_weather['timestamp'], 'precipitation_1d'] = df.iloc[0:-25 , df.columns.get_loc('precipitation_1h')].sum()

如果我翻转订单并将新数据添加为数据框的第一行,则此代码有效(但我希望将新数据保留在数据框的底部):

df.at[current_weather['timestamp'], 'precipitation_1d'] = df.iloc[:24 , df.columns.get_loc('precipitation_1h')].sum()

有什么想法吗?

更新:G. Anderson在评论中的建议非常有效。他说看数据框会很有帮助,所以我提供了一张尾巴的屏幕截图,以防将来对任何人有帮助。尾巴屏幕截图显示了应用G. Anderson解决方案后的数据帧。以前,所有以1d,5d,10d和20d结尾的列都具有NaN值。现在它们有了和(降水)或平均值(湿度,温度)。

dataframe screenshot

0 个答案:

没有答案