重置条件下的累积总和

时间:2019-03-19 19:10:31

标签: python pandas

嗨,所以我有一个数据框,并且只要列的累加总和之一等于阈值,就想找到索引。然后它将重置并再次开始累积。

例如:

    d = np.random.randn(10, 1) * 2
    df = pd.DataFrame(d.astype(int), columns=['data'])
    pd.concat([df,df.cumsum()],axis=1)

出局:

出[34]:

   data  data1
0     1     1
1     2     3
2     3     6
3     2     8
4     0     8
5     1     9
6     0     9
7    -1     8
8     1     9
9     2    11

因此,在以上示例数据中,data1是列1的总和。如果我设置thres=5,则意味着每当列1的运行总和大于或等于5时,我都会保存索引。此后,运行总和将重置并重新开始,直到达到下一个运行总和大于或等于5。

现在,我正在执行循环,并通过手动重置来跟踪运行总和。我想知道熊猫中是否有一种快速的矢量化方法,因为我的数据帧长达数百万行。

谢谢

1 个答案:

答案 0 :(得分:1)

我不熟悉熊猫,但我的理解是它基于numpy。使用numpy,您可以定义可与累加一起使用的自定义函数。

以下是我认为与您要查找的内容接近的

gem 'koala'
gem 'omniauth-facebook'

我相信(或希望)您可以在数据帧上使用numpy函数。