Python-累计总和达到一定阈值

问题描述 投票:0回答:1

我有一个名为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}}



“

python threshold cumulative-sum
1个回答
0
投票
这给出了正确的答案:

df_sorted[(df_sorted['kg_cum'] < df_sorted['kg_cum_year_week_20%']) | (df_sorted['kg_cum'] == 119640.00) ].turnover.sum() # 104015.96988

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.