我有一个数据结构如下的表:
如何在每个不同订单ID的子产品之间以相同的调整率从主产品价格调整子产品价格?
更具体地说,我有一个带有设置代码 (MFDTSVLBR1DB1.B16) 的订单 ID (DH101300) 包括 3 个子产品 (MFDTCA701.B16) , MFDBCA602.B11, MFDBCA601.B11) 的数量为 1/每个子产品。 SET产品价格为619,每个子产品的价格依次为319、149、199(共667)。我需要调整每个子产品的价格如何使每个子产品的价格总计 = SET 产品价格。一套产品中每个子产品的调整率相同。 在 Excel 上很容易,但很难为每个订单 ID、集合产品中的每个子产品价格使用自动 Python 编码。 我非常感谢您的帮助。
#python #Adjust_price
答案 0 :(得分:1)
这可以通过使用分组值创建另一个数据框,并将这些因素应用回原始数据框来完成。也许这可以给你一个开始:
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