当前位置: 首页 > 面试题库 >

如何计算pandas中前N行的累积和?

夏侯博
2023-03-14
问题内容

我正在和熊猫一起工作,但是我没有太多经验。我有以下DataFrame:

          A
0       NaN
1      0.00
2      0.00
3      3.33
4     10.21
5      6.67
6      7.00
7      8.27
8      6.07
9      2.17
10     3.38
11     2.48
12     2.08
13     6.95
14     0.00
15     1.75
16     6.66
17     9.69
18     6.73
19     6.20
20     3.01
21     0.32
22     0.52

而且我需要计算前11行的累积总和。如果先前的数量少于11,则将剩余的数量假定为0。

        B
0     NaN
1    0.00
2    0.00
3    0.00
4    3.33
5    13.54
6    20.21
7    27.20
8    35.47
9    41.54
10    43.72
11   47.09
12   49.57 
13   51.65
14   58.60
15   58.60
16   57.02
17   53.48
18   56.49
19   56.22
20   54.16
21   51.10
22   49.24

我试过了:

df['B'] = df.A.cumsum().shift(-11).fillna(0)

但是,这并没有实现我想要的,但是这正在旋转累积总和的结果。我该如何实现?


问题答案:

呼叫rollingmin_periods=1window=11sum

In [142]:
df['A'].rolling(min_periods=1, window=11).sum()

Out[142]:
0       NaN
1      0.00
2      0.00
3      3.33
4     13.54
5     20.21
6     27.21
7     35.48
8     41.55
9     43.72
10    47.10
11    49.58
12    51.66
13    58.61
14    55.28
15    46.82
16    46.81
17    49.50
18    47.96
19    48.09
20    48.93
21    45.87
22    43.91
Name: A, dtype: float64


 类似资料:
  • 问题内容: 我正在尝试做的事情的广泛视角是,在预订系统被预订之日,找出整个系统中尚未进行的预订。这意味着计算存在的所有记录的数量,这些记录的后缀等于(或等于),按分组。请参阅以下假设示例,以获得更好的解释: 我想要结果: 但是我对如何构造查询完全不满意。有小费吗?谢谢! 编辑:为明确起见,number_of_reservations应该是该日期的预订数量,以及该日期之后几天的预订数量。换句话说,n

  • 问题内容: 我已经实现了一定数量的所有素数的列表。我试图做的事情很难解释,所以我只用一些硬代码展示一下: 所以从本质上讲,我试图从上一个列表中按顺序取出一个元素,然后按指数倍增,然后将其追加到其他列表中。 我意识到我可以做到这一点,这可能会更容易: 我需要一些想法才能在某种程度上做到这一点。 问题答案: 您需要 累积产品 清单。这是一个简单的食谱: 另一种方法,使用itertools: 或者,也许

  • 由于hive只支持从类集中的子查询,如select*from(subquery),也只支持equjo,因此我们如何从表中计算累积工资,如表员工有记录如下。 因此输出应该如下所示 我怎么能在蜂巢里做到这一点

  • 我想知道如何计算的累计总和在AnyLogic中。具体地说,我有一个循环事件,每周改变一个参数的值。从这个参数我想计算它收到的值的累计总和,我怎么做呢? 该事件是循环模式的超时。操作是: "name_parameter"=圆形(max(正常(10,200),0));

  • 问题内容: 如何计算Python中正态分布的累积分布函数(CDF)的反函数? 我应该使用哪个库?可能是卑鄙的? 问题答案: NORMSINV(在注释中提到)是标准正态分布的CDF的倒数。使用,您可以使用对象的方法进行计算。首字母缩写词代表 百分比点函数 ,它是 分位数函数的 另一个名称。 检查它是否与CDF相反: 默认情况下,使用mean = 0和stddev = 1,这是“标准”正态分布。您可以

  • 我有一个rdd(String,Int),它是按键排序的 现在,我想用零开始第一个键的值,并将后续键作为前一个键的和。 例如:c1=0,c2=c1的值,c3=(c1值c2值),c4=(c1..c3值)预期输出: 有可能做到这一点吗?我用地图试过了,但总和没有保存在地图里。