Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何组合单个订单的值?_Python_Pandas - Fatal编程技术网

Python 如何组合单个订单的值?

Python 如何组合单个订单的值?,python,pandas,Python,Pandas,我不知道如何将具有相同productcode的行组合在一起,以合计它们的总订单值(quantityordered*priceeach)。例如: orderdetails_df Out[24]: ordernumber productcode quantityordered priceeach orderlinenumber 0 10100 S18_1749 30 171.70 3 1

我不知道如何将具有相同productcode的行组合在一起,以合计它们的总订单值(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等)组合起来,以获得整个订单的总价值。是否有一些代码可以像wise ORDERNUMBER一样组合并输出它们的总值


非常感谢您的帮助。

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

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

让我们分别做这些事情:

  • 首先,我们创建一个列来计算数量的价格;及
  • 接下来,我们总结订单号
  • 我们可以通过以下方式做到这一点:

    df['pricequantity'] = df['priceeach'] * df['quantityordered']
    
    然后我们可以将价格总结为:

    df.groupby('ordernumber')['pricequantity'].sum()
    
    对于给定的样本数据(除了最后一行缺少
    orderlinenumber
    ),我们得到:


    工作得很好。你是我的英雄,很高兴它成功了。请随意回答我的问题。快乐编码@马修林
    >>> df.groupby('ordernumber')['pricequantity'].sum()
    ordernumber
    10100    12133.25
    10101     3782.00
    10425    10576.99
    Name: pricequantity, dtype: float64