【发布时间】:2021-08-09 08:21:38
【问题描述】:
我有一个如下表所示的 DataFrame:
| index | x | y | value_1 | cumsum_1 | cumsum_2 |
|---|---|---|---|---|---|
| 0 | 0.1 | 1 | 12 | 12 | 0 |
| 1 | 1.2 | 1 | 10 | 12 | 10 |
| 2 | 0.25 | 1 | 7 | 19 | 10 |
| 3 | 1.0 | 2 | 3 | 0 | 3 |
| 4 | 0.72 | 2 | 5 | 5 | 10 |
| 5 | 1.5 | 2 | 10 | 5 | 13 |
所以我的目标是计算value_1 的累积和。但有两个条件必须考虑。
- 首先:如果值
x小于1,则cumsum()写入列cumsum_1,如果x大于列cumsum_2。 - 第二个:
y列表示组 (1,2,3,...)。当y中的值发生变化时,cumsum()操作会重新开始。我认为grouby()方法会有所帮助。
有人知道吗?
【问题讨论】:
-
你能显示预期的输出以使其更清晰吗?
-
期望输出显示在
cumsum_1和cumsum_2列中。 -
提示:(1)
df['x'] < 1为您提供一列布尔值,(2) 将此列乘以df['value_1']会得到df['x']小于 1 的值,而在其他地方则为 0 , (3) 取本列的cumsum, (4) 对不小于1的值重复。这样就解决了第一部分。