我有一个名为df_sorted的数据框(如下图所示)。
我需要的是满足以下条件的,按df_sorted['turnover']
分组的df_sorted['year_week']
的累积和:
df_sorted['kg_cum'] < df_sorted['kg_cum_year_week_20%']
基于图像的答案应该是大约104012的营业额
由于我是python的新手,所以我很想听听如何解决这个问题。
如果以上内容不够清楚,请随时询问更多信息。
此处数据为字典:
{'orderline': {0: 1418863,
1: 1418860,
2: 1418718,
3: 1418864,
4: 1418745,
5: 1418862,
6: 1418707,
7: 1418738,
8: 1418699,
9: 1418853,
10: 1418722,
11: 1418739,
12: 1418724,
13: 1418763,
14: 1418876,
15: 1418851,
16: 1418761,
17: 1418710,
18: 1418777,
19: 1418903,
20: 1418902,
21: 1418901,
22: 1418852,
23: 1418703,
24: 1418858,
25: 1418702,
26: 1418857,
27: 1418896,
28: 1418781,
29: 1418741,
30: 1418883,
31: 1418740,
32: 1418734,
33: 1418753,
34: 1418890,
35: 1418726,
36: 1418882,
37: 1418744,
38: 1418752,
39: 1418885,
40: 1418894,
41: 1418889,
42: 1418749,
43: 1418879,
44: 1418886,
45: 1418729,
46: 1418732,
47: 1418751,
48: 1418895,
49: 1418730,
50: 1418878,
51: 1418694,
52: 1418849,
53: 1418717,
54: 1419013,
55: 1418941,
56: 1419015,
57: 1418926,
58: 1419194,
59: 1418979,
60: 1419014,
61: 1419060,
62: 1419063,
63: 1419172,
64: 1419217,
65: 1419368,
66: 1418965,
67: 1419085,
68: 1419216,
69: 1419329,
70: 1418917,
71: 1419109,
72: 1418930,
73: 1419075,
74: 1419349},
'year_week': {0: '2019-01',
1: '2019-01',
2: '2019-01',
3: '2019-01',
4: '2019-01',
5: '2019-01',
6: '2019-01',
7: '2019-01',
8: '2019-01',
9: '2019-01',
10: '2019-01',
11: '2019-01',
12: '2019-01',
13: '2019-01',
14: '2019-01',
15: '2019-01',
16: '2019-01',
17: '2019-01',
18: '2019-01',
19: '2019-01',
20: '2019-01',
21: '2019-01',
22: '2019-01',
23: '2019-01',
24: '2019-01',
25: '2019-01',
26: '2019-01',
27: '2019-01',
28: '2019-01',
29: '2019-01',
30: '2019-01',
31: '2019-01',
32: '2019-01',
33: '2019-01',
34: '2019-01',
35: '2019-01',
36: '2019-01',
37: '2019-01',
38: '2019-01',
39: '2019-01',
40: '2019-01',
41: '2019-01',
42: '2019-01',
43: '2019-01',
44: '2019-01',
45: '2019-01',
46: '2019-01',
47: '2019-01',
48: '2019-01',
49: '2019-01',
50: '2019-01',
51: '2019-01',
52: '2019-01',
53: '2019-01',
54: '2019-02',
55: '2019-02',
56: '2019-02',
57: '2019-02',
58: '2019-02',
59: '2019-02',
60: '2019-02',
61: '2019-02',
62: '2019-02',
63: '2019-02',
64: '2019-02',
65: '2019-02',
66: '2019-02',
67: '2019-02',
68: '2019-02',
69: '2019-02',
70: '2019-02',
71: '2019-02',
72: '2019-02',
73: '2019-02',
74: '2019-02'},
'kg_orderline': {0: 39600.0,
1: 1200.0,
2: 6240.0,
3: 10200.0,
4: 19800.0,
5: 19800.0,
6: 7200.0,
7: 6600.0,
8: 9000.0,
9: 9000.0,
10: 12600.0,
11: 4200.0,
12: 19800.0,
13: 1200.0,
14: 19800.0,
15: 3600.0,
16: 3000.0,
17: 19800.0,
18: 6600.0,
19: 1200.0,
20: 19800.0,
21: 3000.0,
22: 10200.0,
23: 5846.4,
24: 7308.0,
25: 2923.2,
26: 1044.0,
27: 3000.0,
28: 4320.0,
29: 8991.36,
30: 261.0,
31: 870.0,
32: 19800.0,
33: 16484.16,
34: 4495.68,
35: 7992.32,
36: 2396.8,
37: 19800.0,
38: 19800.0,
39: 19800.0,
40: 19800.0,
41: 11504.64,
42: 8960.0,
43: 3920.0,
44: 5600.0,
45: 8400.0,
46: 10080.0,
47: 18480.0,
48: 6720.0,
49: 14520.0,
50: 16720.0,
51: 15840.0,
52: 15840.0,
53: 5200.0,
54: 19800.0,
55: 19800.0,
56: 19800.0,
57: 5200.0,
58: 7800.0,
59: 12000.0,
60: 12000.0,
61: 19800.0,
62: 7800.0,
63: 19800.0,
64: 19800.0,
65: 31200.0,
66: 19800.0,
67: 19800.0,
68: 19800.0,
69: 19800.0,
70: 6000.0,
71: 6000.0,
72: 19800.0,
73: 19800.0,
74: 19800.0},
'Price': {0: 0.743472,
1: 0.877065,
2: 0.896822,
3: 0.899015,
4: 0.900508,
5: 0.900508,
6: 1.011472,
7: 1.011472,
8: 1.015272,
9: 1.015272,
10: 1.110932,
11: 1.110932,
12: 1.111472,
13: 1.111472,
14: 1.111472,
15: 1.115272,
16: 1.160932,
17: 1.161472,
18: 1.161472,
19: 1.161472,
20: 1.190932,
21: 1.191472,
22: 1.215272,
23: 1.21580229885057,
24: 1.21580229885057,
25: 1.27547126436782,
26: 1.27588122605364,
27: 1.311472,
28: 1.34901875,
29: 1.34937892376682,
30: 1.37190114942529,
31: 1.37320459770115,
32: 1.377472,
33: 1.39461434977578,
34: 1.39461434977578,
35: 1.39870627802691,
36: 1.41605841121495,
37: 1.456678,
38: 1.456678,
39: 1.456678,
40: 1.456678,
41: 1.46319626168224,
42: 1.480638,
43: 1.480638,
44: 1.480638,
45: 1.500638,
46: 1.500638,
47: 1.500638,
48: 1.500638,
49: 1.515914,
50: 1.515914,
51: 1.516132,
52: 1.516132,
53: 1.516353,
54: 1.059765,
55: 1.076573,
56: 1.077065,
57: 1.096822,
58: 1.096822,
59: 1.098558,
60: 1.099015,
61: 1.099015,
62: 1.099015,
63: 1.099015,
64: 1.099015,
65: 1.099015,
66: 1.100508,
67: 1.100508,
68: 1.100508,
69: 1.100508,
70: 1.130932,
71: 1.135272,
72: 1.147472,
73: 1.147472,
74: 1.147472},
'kg_cum': {0: 39600.0,
1: 40800.0,
2: 47040.0,
3: 57240.0,
4: 77040.0,
5: 96840.0,
6: 104040.0,
7: 110640.0,
8: 119640.0,
9: 128640.0,
10: 141240.0,
11: 145440.0,
12: 165240.0,
13: 166440.0,
14: 186240.0,
15: 189840.0,
16: 192840.0,
17: 212640.0,
18: 219240.0,
19: 220440.0,
20: 240240.0,
21: 243240.0,
22: 253440.0,
23: 259286.4,
24: 266594.4,
25: 269517.60000000003,
26: 270561.60000000003,
27: 273561.60000000003,
28: 277881.60000000003,
29: 286872.96,
30: 287133.96,
31: 288003.96,
32: 307803.96,
33: 324288.12,
34: 328783.8,
35: 336776.12,
36: 339172.92,
37: 358972.92,
38: 378772.92,
39: 398572.92,
40: 418372.92,
41: 429877.56,
42: 438837.56,
43: 442757.56,
44: 448357.56,
45: 456757.56,
46: 466837.56,
47: 485317.56,
48: 492037.56,
49: 506557.56,
50: 523277.56,
51: 539117.56,
52: 554957.56,
53: 560157.56,
54: 19800.0,
55: 39600.0,
56: 59400.0,
57: 64600.0,
58: 72400.0,
59: 84400.0,
60: 96400.0,
61: 116200.0,
62: 124000.0,
63: 143800.0,
64: 163600.0,
65: 194800.0,
66: 214600.0,
67: 234400.0,
68: 254200.0,
69: 274000.0,
70: 280000.0,
71: 286000.0,
72: 305800.0,
73: 325600.0,
74: 345400.0},
'kg_cum_year_week': {0: 560157.56,
1: 560157.56,
2: 560157.56,
3: 560157.56,
4: 560157.56,
5: 560157.56,
6: 560157.56,
7: 560157.56,
8: 560157.56,
9: 560157.56,
10: 560157.56,
11: 560157.56,
12: 560157.56,
13: 560157.56,
14: 560157.56,
15: 560157.56,
16: 560157.56,
17: 560157.56,
18: 560157.56,
19: 560157.56,
20: 560157.56,
21: 560157.56,
22: 560157.56,
23: 560157.56,
24: 560157.56,
25: 560157.56,
26: 560157.56,
27: 560157.56,
28: 560157.56,
29: 560157.56,
30: 560157.56,
31: 560157.56,
32: 560157.56,
33: 560157.56,
34: 560157.56,
35: 560157.56,
36: 560157.56,
37: 560157.56,
38: 560157.56,
39: 560157.56,
40: 560157.56,
41: 560157.56,
42: 560157.56,
43: 560157.56,
44: 560157.56,
45: 560157.56,
46: 560157.56,
47: 560157.56,
48: 560157.56,
49: 560157.56,
50: 560157.56,
51: 560157.56,
52: 560157.56,
53: 560157.56,
54: 1567901.1299999997,
55: 1567901.1299999997,
56: 1567901.1299999997,
57: 1567901.1299999997,
58: 1567901.1299999997,
59: 1567901.1299999997,
60: 1567901.1299999997,
61: 1567901.1299999997,
62: 1567901.1299999997,
63: 1567901.1299999997,
64: 1567901.1299999997,
65: 1567901.1299999997,
66: 1567901.1299999997,
67: 1567901.1299999997,
68: 1567901.1299999997,
69: 1567901.1299999997,
70: 1567901.1299999997,
71: 1567901.1299999997,
72: 1567901.1299999997,
73: 1567901.1299999997,
74: 1567901.1299999997},
'kg_cum_year_week_20%': {0: 112031.51200000002,
1: 112031.51200000002,
2: 112031.51200000002,
3: 112031.51200000002,
4: 112031.51200000002,
5: 112031.51200000002,
6: 112031.51200000002,
7: 112031.51200000002,
8: 112031.51200000002,
9: 112031.51200000002,
10: 112031.51200000002,
11: 112031.51200000002,
12: 112031.51200000002,
13: 112031.51200000002,
14: 112031.51200000002,
15: 112031.51200000002,
16: 112031.51200000002,
17: 112031.51200000002,
18: 112031.51200000002,
19: 112031.51200000002,
20: 112031.51200000002,
21: 112031.51200000002,
22: 112031.51200000002,
23: 112031.51200000002,
24: 112031.51200000002,
25: 112031.51200000002,
26: 112031.51200000002,
27: 112031.51200000002,
28: 112031.51200000002,
29: 112031.51200000002,
30: 112031.51200000002,
31: 112031.51200000002,
32: 112031.51200000002,
33: 112031.51200000002,
34: 112031.51200000002,
35: 112031.51200000002,
36: 112031.51200000002,
37: 112031.51200000002,
38: 112031.51200000002,
39: 112031.51200000002,
40: 112031.51200000002,
41: 112031.51200000002,
42: 112031.51200000002,
43: 112031.51200000002,
44: 112031.51200000002,
45: 112031.51200000002,
46: 112031.51200000002,
47: 112031.51200000002,
48: 112031.51200000002,
49: 112031.51200000002,
50: 112031.51200000002,
51: 112031.51200000002,
52: 112031.51200000002,
53: 112031.51200000002,
54: 313580.22599999997,
55: 313580.22599999997,
56: 313580.22599999997,
57: 313580.22599999997,
58: 313580.22599999997,
59: 313580.22599999997,
60: 313580.22599999997,
61: 313580.22599999997,
62: 313580.22599999997,
63: 313580.22599999997,
64: 313580.22599999997,
65: 313580.22599999997,
66: 313580.22599999997,
67: 313580.22599999997,
68: 313580.22599999997,
69: 313580.22599999997,
70: 313580.22599999997,
71: 313580.22599999997,
72: 313580.22599999997,
73: 313580.22599999997,
74: 313580.22599999997},
'turnover': {0: 29441.4912,
1: 1052.478,
2: 5596.16928,
3: 9169.953,
4: 17830.058399999998,
5: 17830.058399999998,
6: 7282.5984,
7: 6675.7152,
8: 9137.448,
9: 9137.448,
10: 13997.7432,
11: 4665.914400000001,
12: 22007.1456,
13: 1333.7664,
14: 22007.1456,
15: 4014.9792,
16: 3482.7960000000003,
17: 22997.1456,
18: 7665.715200000001,
19: 1393.7664,
20: 23580.4536,
21: 3574.416,
22: 12395.774399999998,
23: 7108.066559999971,
24: 8885.083199999965,
25: 3728.4576000000116,
26: 1332.0200000000002,
27: 3934.4159999999997,
28: 5827.7609999999995,
29: 12132.751680000034,
30: 358.06620000000066,
31: 1194.6880000000006,
32: 27273.9456,
33: 22989.04607999992,
34: 6269.739839999978,
35: 11178.908160000032,
36: 3394.0087999999923,
37: 28842.2244,
38: 28842.2244,
39: 28842.2244,
40: 28842.2244,
41: 16833.546239999967,
42: 13266.516479999998,
43: 5804.10096,
44: 8291.5728,
45: 12605.359199999999,
46: 15126.43104,
47: 27731.79024,
48: 10084.28736,
49: 22011.07128,
50: 25346.08208,
51: 24015.530880000002,
52: 24015.530880000002,
53: 7885.0356,
54: 20983.347,
55: 21316.1454,
56: 21325.887,
57: 5703.4744,
58: 8555.2116,
59: 13182.696,
60: 13188.18,
61: 21760.497000000003,
62: 8572.317000000001,
63: 21760.497000000003,
64: 21760.497000000003,
65: 34289.268000000004,
66: 21790.0584,
67: 21790.0584,
68: 21790.0584,
69: 21790.0584,
70: 6785.592000000001,
71: 6811.6320000000005,
72: 22719.945600000003,
73: 22719.945600000003,
74: 22719.945600000003},
'turnover_20%': {0: 29441.4912,
1: 30493.9692,
2: 36090.13848,
3: 45260.09148,
4: 63090.14988,
5: 80920.20827999999,
6: 88202.80668,
7: 94878.52188,
8: nan,
9: nan,
10: nan,
11: nan,
12: nan,
13: nan,
14: nan,
15: nan,
16: nan,
17: nan,
18: nan,
19: nan,
20: nan,
21: nan,
22: nan,
23: nan,
24: nan,
25: nan,
26: nan,
27: nan,
28: nan,
29: nan,
30: nan,
31: nan,
32: nan,
33: nan,
34: nan,
35: nan,
36: nan,
37: nan,
38: nan,
39: nan,
40: nan,
41: nan,
42: nan,
43: nan,
44: nan,
45: nan,
46: nan,
47: nan,
48: nan,
49: nan,
50: nan,
51: nan,
52: nan,
53: nan,
54: 115861.86888,
55: 137178.01428,
56: 158503.90128,
57: 164207.37568,
58: 172762.58728,
59: 185945.28328,
60: 199133.46328,
61: 220893.96028,
62: 229466.27728,
63: 251226.77428,
64: 272987.27128,
65: 307276.53927999997,
66: 329066.59767999995,
67: 350856.6560799999,
68: 372646.7144799999,
69: 394436.7728799999,
70: 401222.3648799999,
71: 408033.9968799999,
72: 430753.94247999985,
73: nan,
74: nan}}
df_sorted[(df_sorted['kg_cum'] < df_sorted['kg_cum_year_week_20%']) | (df_sorted['kg_cum'] == 119640.00) ].turnover.sum()
# 104015.96988