df1是盒子里的信息,每个盒子都有不同的体积大小,盒子A的体积是30,盒子B的体积是25,以此类推。
df1 = pd.DataFrame({'boxID':['A', 'B', 'C', 'D'],'volume':[30,25,30,10]})
df1.set_index("boxID")
volume
boxID
A 30
B 25
C 30
D 10
df2为产品信息,每种产品金额不同
df2 = pd.DataFrame({'Product No':['1', '2', '3', '4', '5', '6', '7'],'amount':[10, 5, 13, 15, 20, 10, 17]})
df2.set_index("Product No")
amount
Product No
1 10
2 5
3 13
4 15
5 20
6 10
7 17
将**“box id”列插入到df2中,以查找并匹配df1.**的相应box id,如底部的数据框。
output_df2 = pd.DataFrame({'Product No':['1', '2', '3', '4', '5', '6', '7'],'amount':[10, 5, 13, 15, 20, 10, 17], 'box ID':['A', 'A', 'A', 'B', 'C', 'C', 'D']})
output_df2.set_index("Product No")
amount box ID
Product No
1 10 A
2 5 A
3 13 A
4 15 B
5 20 C
6 10 C
7 17 D
从上到下依次添加量(df2),以接近每箱体积(df1),但不超过每箱体积
例如,由于df1的第一个箱体积为30,因此它可以包含df2与第二行(amout 5)和第三行(amount 13)的第一行乘积(amount 10),因为10+5+13 = 28,所以等于30。(但是,如果您将第四行相加,则10+5+13+15 = 43,超过30
Python还是一个初学者,所以请各位Maven给予我一些建议,这对我来说是一个非常重要的任务。
匹配DF2中的盒ID列中DF1的适当盒ID。
1条答案
按热度按时间92dk7w1h1#
单向使用
pandas.cut
输出: