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

如何在pandas群中使用cumsum?

陈德泽
2023-03-14
问题内容

我有

df = pd.DataFrame.from_dict({'id': ['A', 'B', 'A', 'C', 'D', 'B', 'C'], 'val': [1,2,-3,1,5,6,-2], 'stuff':['12','23232','13','1234','3235','3236','732323']})

  id   stuff  val
0  A      12    1
1  B   23232    2
2  A      13   -3
3  C    1234    1
4  D    3235    5
5  B    3236    6
6  C  732323   -2

我想val为每个运行一些id,所以所需的输出如下所示:

  id   stuff  val  cumsum
0  A      12    1   1
1  B   23232    2   2
2  A      13   -3   -2
3  C    1234    1   1
4  D    3235    5   5
5  B    3236    6   8
6  C  732323   -2  -1

这是我尝试的:

df['cumsum'] = df.groupby('id').cumsum(['val'])

df['cumsum'] = df.groupby('id').cumsum(['val'])

这是我得到的错误:

ValueError: Wrong number of items passed 0, placement implies 1

问题答案:

您可以调用transform并传递cumsum函数以将该列添加到df中:

In [156]:
df['cumsum'] = df.groupby('id')['val'].transform(pd.Series.cumsum)
df

Out[156]:
  id   stuff  val  cumsum
0  A      12    1       1
1  B   23232    2       2
2  A      13   -3      -2
3  C    1234    1       1
4  D    3235    5       5
5  B    3236    6       8
6  C  732323   -2      -1

关于错误,您无法调用cumsumSeries groupby对象,其次,您将列名作为无意义的列表传递。

所以这有效:

In [159]:
df.groupby('id')['val'].cumsum()

Out[159]:
0    1
1    2
2   -2
3    1
4    5
5    8
6   -1
dtype: int64


 类似资料:
  • 问题内容: 这是代码段: 输出: 我很惊讶0不在(0,30]中,我应该怎么做才能将0归类为(0,30]? 问题答案: test[‘range’] = pd.cut(test.days, [0,30,60], include_lowest=True) print (test) days range 0 0 (-0.001, 30.0] 1 31 (30.0, 60.0] 2 45 (30.0, 60

  • 问题内容: 我是python的新手。这似乎是一个基本问题。但我真的很想了解这里发生了什么 索引每个数据帧中的第一个元素 疑问1:为什么会这样?为什么myseries_three [0]给我一个keyError?调用myseries_one [0],myseries_one [0]或myseries_three [0]是什么意思?以这种方式调用是否意味着我们以行名进行调用? 疑问2:-Python中

  • 我将express与socket.io一起使用,将express-session与Express-socket.io-session一起使用,这有助于将会话连接到我的套接字实例。 Deploy函数运行诸如会话、路由等内容。 POST http://localhost:8080/socket.io/?eio=3&transport=polling&t=lz9ey8p 404(未找到)

  • 问题内容: —我构建了一个简单的应用程序,该应用程序从Redis数据库中提取数据(50个项目)并将其扔到localhost。我做了一个ApacheBench(c = 100,n = 50000),并且在1.73GHz(我的6岁笔记本电脑)的双核T2080上获得了半不错的150个请求/秒,但是proc的使用非常令人失望显示: 仅使用了一个内核,这是按照Node中的设计进行的,但是我认为,如果我可以使

  • 问题内容: 我希望在python3中以有效的方式使用该功能。我拥有的代码可以完成任务,但是速度太慢,因为我正在处理大型数据集。因此,只要有折衷,我的工作重点就是效率而不是优雅。这是我想做的玩具: 这使 如我所愿,但是花费的时间太长了。最快的方法是什么? 编辑:这是比该问题更集中和明确的问题,其解决方案与此类似。 问题答案: 用于执行查找: 为了避免没有有效密钥的情况,您可以通过 您还可以使用回答有

  • 现在,每次运行脚本时,我都会导入一个相当大的作为数据帧。有没有一个好的解决方案可以让数据帧在运行之间不断可用,这样我就不用花那么多时间等待脚本运行了?