首页 > 解决方案 > 如何组合单个订单的值?

问题描述

我无法弄清楚如何将具有相同产品代码的行组合在一起以求和它们的总订单值(quantityordered * priceeach)。例如:

orderdetails_df
Out[24]: 
      ordernumber productcode  quantityordered  priceeach  orderlinenumber
0           10100    S18_1749               30     171.70                3
1           10100    S18_2248               50      67.80                2
2           10100    S18_4409               22      86.51                4
3           10100    S24_3969               49      34.47                1
4           10101    S18_2325               25     151.28                4
           ...         ...              ...        ...              ...
2991        10425    S24_2300               49     112.46                9
2992        10425    S24_2840               31      33.24                5
2993        10425    S32_1268               41      86.68               11
2994        10425    S32_2509               11      43.83                6
2995        10425    S50_1392               18     105.33                

我需要将所有订单号 10100 及其对应的价格值(30 * 171.70 等)组合起来,以获得整个订单的总值。是否有一些代码可以组合所有类似的订单号并输出它们的总值?

任何帮助是极大的赞赏。

标签: pythonpandas

解决方案


您需要计算订单价值,然后使用groupby,对每个订单的订单价值求和。

df['order_value'] = df['quantityordered'] * df['priceeach']
df.groupby('ordernumber')['order_value'].sum().reset_index(name='total_order_value')

输出

ordernumber total_order_value
0   10100   12133.25
1   10101   3782.00
2   10425   10576.99

推荐阅读