2024-05-19 23:25:14 发布
网友
所以我正在切片我的timeseries数据,但是对于某些列,我需要能够得到被切片的元素的总和。例如,如果你有
s = pd.Series([10, 30, 21, 18]) s = s[::-2]
在这种情况下,我需要得到一系列元素的总和,所以我需要
3 39 1 40
作为输出。我见过像.cumsum()这样的东西,但我找不到任何东西可以对一系列元素求和
仅基于标题的答案是df[-15:].sum(),但似乎您正在寻找对每组切片执行计算
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方法也适用于数据帧对象,它就可以扩展
2
.rolling
我不太明白第一列代表什么。但第二列似乎是总和结果
如果您获得了正确的切片,那么很容易通过sum()获得sum,如下所示:
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
仅基于标题的答案是
df[-15:].sum()
,但似乎您正在寻找对每组切片执行计算为了解决这个问题,pandas提供了window utilities。因此,您可以简单地执行以下操作:
返回:
此外,只要您可以用任何其他值替换
2
,并且.rolling
方法也适用于数据帧对象,它就可以扩展我不太明白第一列代表什么。但第二列似乎是总和结果
如果您获得了正确的切片,那么很容易通过
sum()
获得sum
,如下所示:输出为:
相关问题 更多 >
编程相关推荐