这可能是一个幼稚的问题,但是我无法合理地把握这个问题。我有一个看起来像一样的数据集-
Date_1 Count Value
0 18/8/2018 220 10
1 24/8/2018 231 14
2 29/8/2018 272 9
3 20/7/2018 83 5
4 13/7/2018 53 5
5 24/7/2018 120 10
6 17/8/2018 196 1
7 26/7/2018 118 1
8 22/8/2018 236 11
9 19/7/2018 74 4
10 26/7/2018 118 12
11 10/8/2018 168 16
12 29/8/2018 272 2
13 5/7/2018 18 148
14 24/8/2018 231 11
15 3/8/2018 154 13
16 20/8/2018 245 1
17 31/8/2018 320 6
18 26/8/2018 287 8
19 10/7/2018 39 24
20 2/8/2018 143 12
21 2/8/2018 143 12
这只是我的csv的一小段。日期对应于特定日期,计数对应于重复该日期的次数,而值是每个日期的信息。我想创建一个具有特殊逻辑的新列Value_2:
在特定日期将为3500-值。例如
对于日期2/8/2018,您可以在示例中看到2个日期,输出应为-
Date_1 Count Value Value_2
2/8/2018 143 12 3488(3500-12)
2/8/2018 143 12 3476(3488-12)
以此类推。
数据集共有20000个条目。
我可以使用python中的groupby
函数来获得特定日期的总数,但不能为特定日期的实例获得总数。
谢谢
答案 0 :(得分:1)
您可以使用
df['Value_2'] = 3500 - df.groupby('Date_1').Value.cumsum()
# Date_1 Count Value Value_2
# 0 18/8/2018 220 10 3490
# 1 24/8/2018 231 14 3486
# 2 29/8/2018 272 9 3491
# 3 20/7/2018 83 5 3495
# 4 13/7/2018 53 5 3495
# 5 24/7/2018 120 10 3490
# 6 17/8/2018 196 1 3499
# 7 26/7/2018 118 1 3499
# 8 22/8/2018 236 11 3489
# 9 19/7/2018 74 4 3496
# 10 26/7/2018 118 12 3487
# 11 10/8/2018 168 16 3484
# 12 29/8/2018 272 2 3489
# 13 5/7/2018 18 148 3352
# 14 24/8/2018 231 11 3475
# 15 3/8/2018 154 13 3487
# 16 20/8/2018 245 1 3499
# 17 31/8/2018 320 6 3494
# 18 26/8/2018 287 8 3492
# 19 10/7/2018 39 24 3476
# 20 2/8/2018 143 12 3488
# 21 2/8/2018 143 12 3476