1 回答

TA貢獻1863條經驗 獲得超2個贊
編輯:您可以按原始順序的之前和最后一個排序索引對值RY
進行Week no
排序GroupBy.cumsum
:
#create default index for correct working
df = df.reset_index(drop=True)
df['Cummulative Value'] = df.sort_values(['RY','Week no']).groupby('RY')['Value'].cumsum().sort_index()
print (df)
? ? ? RY? Week no? ? ?Value? Cummulative Value
0? ?2020? ? ? ?14? ?3.95321? ? ? ? ? ?53.73092
1? ?2020? ? ? ?15? ?3.56425? ? ? ? ? ?57.29517
2? ?2020? ? ? ?16? ?0.07042? ? ? ? ? ?57.36559
3? ?2020? ? ? ?17? ?6.45417? ? ? ? ? ?63.81976
4? ?2020? ? ? ?18? ?0.00029? ? ? ? ? ?63.82005
5? ?2020? ? ? ?19? ?0.27737? ? ? ? ? ?64.09742
6? ?2020? ? ? ?20? ?4.12644? ? ? ? ? ?68.22386
7? ?2020? ? ? ?21? ?0.32753? ? ? ? ? ?68.55139
8? ?2020? ? ? ?22? ?0.47239? ? ? ? ? ?69.02378
9? ?2020? ? ? ?23? ?0.28756? ? ? ? ? ?69.31134
10? 2020? ? ? ?24? ?1.83029? ? ? ? ? ?71.14163
11? 2020? ? ? ?25? ?0.75385? ? ? ? ? ?71.89548
12? 2020? ? ? ?26? ?2.08981? ? ? ? ? ?73.98529
13? 2020? ? ? ?27? ?2.05611? ? ? ? ? ?76.04140
14? 2020? ? ? ?28? ?1.00614? ? ? ? ? ?77.04754
15? 2020? ? ? ?29? ?0.02105? ? ? ? ? ?77.06859
16? 2020? ? ? ?30? ?0.58101? ? ? ? ? ?77.64960
17? 2020? ? ? ?31? ?3.49083? ? ? ? ? ?81.14043
18? 2020? ? ? ?32? ?8.29013? ? ? ? ? ?89.43056
19? 2020? ? ? ?33? ?8.99825? ? ? ? ? ?98.42881
20? 2020? ? ? ?34? ?2.66293? ? ? ? ? 101.09174
21? 2020? ? ? ?35? ?0.16448? ? ? ? ? 101.25622
22? 2020? ? ? ?36? ?2.26301? ? ? ? ? 103.51923
23? 2020? ? ? ?37? ?1.09302? ? ? ? ? 104.61225
24? 2020? ? ? ?38? ?1.66566? ? ? ? ? 106.27791
25? 2020? ? ? ?39? ?1.47233? ? ? ? ? 107.75024
26? 2020? ? ? ?40? ?6.42708? ? ? ? ? 114.17732
27? 2020? ? ? ?41? ?2.67947? ? ? ? ? 116.85679
28? 2020? ? ? ?42? ?6.79551? ? ? ? ? 123.65230
29? 2020? ? ? ?43? ?4.45881? ? ? ? ? 128.11111
30? 2020? ? ? ?44? ?1.87972? ? ? ? ? 129.99083
31? 2020? ? ? ?45? ?0.76284? ? ? ? ? 130.75367
32? 2020? ? ? ?46? ?1.86710? ? ? ? ? 132.62077
33? 2020? ? ? ?47? ?2.07159? ? ? ? ? 134.69236
34? 2020? ? ? ?48? ?2.87303? ? ? ? ? 137.56539
35? 2020? ? ? ?49? ?7.66944? ? ? ? ? 145.23483
36? 2020? ? ? ?50? ?1.20421? ? ? ? ? 146.43904
37? 2020? ? ? ?51? ?9.04416? ? ? ? ? 155.48320
38? 2020? ? ? ?52? ?2.26250? ? ? ? ? 157.74570
39? 2020? ? ? ? 1? ?1.17026? ? ? ? ? ? 1.17026
40? 2020? ? ? ? 2? 14.22263? ? ? ? ? ?15.39289
41? 2020? ? ? ? 3? ?1.36464? ? ? ? ? ?16.75753
42? 2020? ? ? ? 4? ?2.64862? ? ? ? ? ?19.40615
43? 2020? ? ? ? 5? ?8.69916? ? ? ? ? ?28.10531
44? 2020? ? ? ? 6? ?4.51259? ? ? ? ? ?32.61790
45? 2020? ? ? ? 7? ?2.83411? ? ? ? ? ?35.45201
46? 2020? ? ? ? 8? ?3.64183? ? ? ? ? ?39.09384
47? 2020? ? ? ? 9? ?4.77292? ? ? ? ? ?43.86676
48? 2020? ? ? ?10? ?1.64729? ? ? ? ? ?45.51405
49? 2020? ? ? ?11? ?1.68780? ? ? ? ? ?47.20185
50? 2020? ? ? ?12? ?2.24874? ? ? ? ? ?49.45059
51? 2020? ? ? ?13? ?0.32712? ? ? ? ? ?49.77771
編輯:
經過一番討論后,解決方案應簡化為GroupBy.cumsum:
df['Cummulative Value'] = df.groupby('RY')['Value'].cumsum()
添加回答
舉報