首页 > 解决方案 > 将依赖于同一列的相同数据框的两列相乘

问题描述

我有以下数据框,

顾客姓名 销售代表 库存单位 类别 数字 日期 委员会
0 穆勒父子 洛林·普雷多维奇 GP-14407 数量 19 2016-02-13 05:58:34 0.040
1 穆勒父子 洛林·普雷多维奇 GP-14407 单价 300 2016-02-13 05:58:34 0.025
2 珀迪父子 蒂根·奥基夫 NZ-99565 数量 32 2016-01-23 02:15:50 0.025
3 珀迪父子 蒂根·奥基夫 NZ-99565 单价 1000 2016-01-23 02:15:50 0.025
4 穆勒父子 洛林·普雷多维奇 GP-14407 首价 200 2016-02-13 05:58:34 0.040
5 珀迪父子 蒂根·奥基夫 NZ-99565 首价 800 2016-01-23 02:15:50 0.025

我需要计算每个客户的总价,例如

例如,对于客户“Mueller and Sons”,我需要计算总价,例如“类别(数量的编号)* 类别(单价的编号)”,即 (19*300)。

所以我尝试对客户名称进行分组,并将同一列中的数据乘以不成功。

df.groupby(['customer name']).(category='quantity'['Number']*category='unit price'['Number'])

有人可以帮我弄这个吗?

提前致谢。

标签: pythonpandasdataframepandas-groupby

解决方案


如果您只想查找单位和价格的产品:

q = df[df["category"].eq("quantity")].groupby("customer name")["Number"].first()
u = (
    df[df["category"].eq("unit price")]
    .groupby("customer name")["Number"]
    .first()
)
print(q * u)

印刷:

customer name
Mueller and Sons     5700
Purdy and Sons      32000
Name: Number, dtype: int64

推荐阅读