如何从数据帧中获取最后15个值的总和

2024-05-19 23:25:14 发布

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

所以我正在切片我的timeseries数据,但是对于某些列,我需要能够得到被切片的元素的总和。例如,如果你有

s = pd.Series([10, 30, 21, 18])
s = s[::-2]

在这种情况下,我需要得到一系列元素的总和,所以我需要

3   39
1   40

作为输出。我见过像.cumsum()这样的东西,但我找不到任何东西可以对一系列元素求和


Tags: 数据元素情况切片seriespdtimeseries总和
2条回答

仅基于标题的答案是df[-15:].sum(),但似乎您正在寻找对每组切片执行计算

为了解决这个问题,pandas提供了window utilities。因此,您可以简单地执行以下操作:

s = pd.Series([10, 30, 21, 18])
s.rolling(2).sum()[::-2].astype(int)

返回:

3    39
1    40
dtype: int64

此外,只要您可以用任何其他值替换2,并且.rolling方法也适用于数据帧对象,它就可以扩展

我不太明白第一列代表什么。但第二列似乎是总和结果

如果您获得了正确的切片,那么很容易通过sum()获得sum,如下所示:

import numpy as np
import pandas as pd

data = np.arange(0, 10).reshape(-1, 2)
pd.DataFrame(data).iloc[2:].sum(axis=1)

输出为:

2 9
3 13
4 17
dtype: int64

相关问题 更多 >