有没有一种方法可以向cumsum添加条件而不会“削减”我的表?

时间:2020-01-07 15:37:11

标签: python pandas

我找到了用于计算YTD(年初至今)值的代码(基本上是累计和应用于“年份”传递的 group by 函数)。 但是,现在,我仅在“ 类型”列为“实际”而不是“预算”时才需要此累积总和。我想在Type =“预算”时留空,或者理想情况下,我想为所有的 332 (YTD的最后一个值)显示类型=“预算”的行。

初始表格:

     Value  Type   year  month
0     100  Actual  2018      1
1      50  Actual  2018      2
2      20  Actual  2018      3
3     123  Actual  2018      4
4      56  Actual  2018      5
5      76  Actual  2018      6
6      98  Actual  2018      7
7     126  Actual  2018      8
8      90  Actual  2018      9
9      80  Actual  2018     10
10     67  Actual  2018     11
11     87  Actual  2018     12
12    101  Actual  2019      1
13     98  Actual  2019      2
14     76  Actual  2019      3
15     57  Actual  2019      4
16     98  Budget  2019      5
17    109  Budget  2019      6
18    123  Budget  2019      7
19     67  Budget  2019      8
20     98  Budget  2019      9
21     67  Budget  2019     10
22     98  Budget  2019     11
23    123  Budget  2019     12

这是生成我的实际表的代码

df['YTD'] = df.groupby('year')['Value'].cumsum()


     Value  Type   year    month YTD
0     100  Actual  2018      1   100
1      50  Actual  2018      2   150
2      20  Actual  2018      3   170
3     123  Actual  2018      4   293
4      56  Actual  2018      5   349
5      76  Actual  2018      6   425
6      98  Actual  2018      7   523
7     126  Actual  2018      8   649
8      90  Actual  2018      9   739
9      80  Actual  2018     10   819
10     67  Actual  2018     11   886
11     87  Actual  2018     12   973
12    101  Actual  2019      1   101
13     98  Actual  2019      2   199
14     76  Actual  2019      3   275
15     57  Actual  2019      4   332
16     98  Budget  2019      5   430
17    109  Budget  2019      6   539
18    123  Budget  2019      7   662
19     67  Budget  2019      8   729
20     98  Budget  2019      9   827
21     67  Budget  2019     10   894
22     98  Budget  2019     11   992
23    123  Budget  2019     12  1115

所需表:

         Value  Type   year    month YTD
    0     100  Actual  2018      1   100
    1      50  Actual  2018      2   150
    2      20  Actual  2018      3   170
    3     123  Actual  2018      4   293
    4      56  Actual  2018      5   349
    5      76  Actual  2018      6   425
    6      98  Actual  2018      7   523
    7     126  Actual  2018      8   649
    8      90  Actual  2018      9   739
    9      80  Actual  2018     10   819
    10     67  Actual  2018     11   886
    11     87  Actual  2018     12   973
    12    101  Actual  2019      1   101
    13     98  Actual  2019      2   199
    14     76  Actual  2019      3   275
    15     57  Actual  2019      4   332
    16     98  Budget  2019      5   332
    17    109  Budget  2019      6   332
    18    123  Budget  2019      7   332
    19     67  Budget  2019      8   332
    20     98  Budget  2019      9   332
    21     67  Budget  2019     10   332
    22     98  Budget  2019     11   332
    23    123  Budget  2019     12   332

我发现的解决方案只是设置一个条件(其中Type =“ Actual”),但是在这种情况下,整个表将不会显示,而我需要完全显示它...

您有一个克服部分选择问题的想法吗?

谢谢

亚历克斯

0 个答案:

没有答案