zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Python小案例(五)循环判断进行分组

Python案例循环 进行 判断 分组
2023-06-13 09:17:15 时间

Python小案例(五)循环判断进行分组

需求背景:现有一列按照某规则排序后的产品,想进行打包进行组合售卖。要求按顺序进行价格累积,当价格累积超过2000后,需要从下一个产品重新开始打包。

  • 构造数据
import pandas as pd 
# 构造数据
df_cycle = pd.DataFrame(
    {'顺序':[i for i in range(12)],
        '价格':[1000,500,600,800,1000,700,400,300,200,500,200,100],})
# 查看数据情况
df_cycle

顺序

价格

0

0

1000

1

1

500

2

2

600

3

3

800

4

4

1000

5

5

700

6

6

400

7

7

300

8

8

200

9

9

500

10

10

200

11

11

100

  • 利用python进行循环判断
df_cycle['cumu']=0 # 初始累积值为0
df_cycle['class']=0 # 初始类别为0

# 通过循环判断进行分组
inint_price=0
i=0
for index, row in df_cycle.iterrows():
    price=row['价格']
    inint_price+=price
    
    if inint_price>=2000:
        df_cycle.at[index, 'cumu']=inint_price
        df_cycle.at[index, 'class']=i
        i=i+1
        inint_price=0
    else:
        df_cycle.at[index, 'cumu']=inint_price
        df_cycle.at[index, 'class']=i
        
df_cycle

顺序

价格

cumu

class

0

0

1000

1000

0

1

1

500

1500

0

2

2

600

2100

0

3

3

800

800

1

4

4

1000

1800

1

5

5

700

2500

1

6

6

400

400

2

7

7

300

700

2

8

8

200

900

2

9

9

500

1400

2

10

10

200

1600

2

11

11

100

1700

2

共勉~