如何对数据帧中列的底部X行求和?

2024-05-13 19:05:58 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

我还有一个24小时降水总量(降水量1d)栏。我只想计算附加行的这个值,而不是整个列(所以我不想使用df.rolling)

这是我试过的

此代码跳过最下面一行(即最近的降水量值):

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.安德森在评论中的建议非常有效。他说看到dataframe会很有帮助,所以我提供了一个尾部的屏幕截图,以防将来对任何人都有帮助。尾部屏幕截图显示了我应用G.Anderson的解决方案后的数据帧。之前,以1d、5d、10d和20d结尾的所有列都有NaN值。现在他们有总和(降水量)或方法(湿度、温度)

dataframe screenshot


Tags: columns数据代码dfgetcurrentloctimestamp