如何从主产品价格调整子产品价格?

How to adjust sub-products price from main product price?

我有一个 table 的数据结构如下:

如何根据主产品价格调整子产品价格,并且每个不同订单id的子产品之间的调整率相同?

更具体地说,我有一个带有设置代码(MFDTSVLBR1DB1.B16)的订单ID(DH101300)包括3个子产品(MFDTCA701.B16 , MFDBCA602.B11, MFDBCA601.B11) 数量为 1/每个子产品。 SET产品价格为619,各子产品价格依次为319、149、199(合计667)。我需要调整每个子产品的价格如何使每个子产品的总价格 = SET 产品价格。一套产品中每个子产品的调整幅度相同。 在 Excel 上很容易,但很难使用自动 Python 编码每个订单 ID,每个子产品价格在集合产品中。 非常感谢您的帮助。

#python#Adjust_price

可以通过使用分组值创建另一个数据框并将这些因素应用回原始数据框来完成。也许这可以给你一个开始:

import pandas as pd

data = [
[ 1, 1, 6190000, 3190000 ],
[ 1, 1, 6190000, 1490000 ],
[ 1, 1, 6190000, 1990000 ],
[ 1, 1, 1148000, 599000 ],
[ 1, 1, 1148000, 549000 ]]


df = pd.DataFrame(data, columns=['qty','subqty','price','subprice'])
print(df)
df2 = df.groupby('price').sum()
print(df2)
df2['factor'] = df2.index/df2['subprice']
print(df2)
df['fix'] = df2.loc[df['price'].tolist()]['factor'].tolist() * df['subprice']
print(df)

这是最终输出:

   qty  subqty    price  subprice           fix
0    1       1  6190000   3190000  2.960435e+06
1    1       1  6190000   1490000  1.382774e+06
2    1       1  6190000   1990000  1.846792e+06
3    1       1  1148000    599000  5.990000e+05
4    1       1  1148000    549000  5.490000e+05