python - 将依赖于同一列的相同数据框的两列相乘
问题描述
我有以下数据框,
顾客姓名 | 销售代表 | 库存单位 | 类别 | 数字 | 日期 | 委员会 | |
---|---|---|---|---|---|---|---|
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'])
有人可以帮我弄这个吗?
提前致谢。
解决方案
如果您只想查找单位和价格的产品:
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
推荐阅读
- future - 如何使用 suspendCoroutine 将 java 7 future 变成 kotlin 挂起功能
- xml - 如何使用 xslt 将 XML 元素内容复制到另一个 xml 文件?
- regex - 正则表达式重复单词
- node.js - adm-zip 不压缩数据
- c++ - 函数可以有像 (x | y) 这样的参数吗?它是如何工作的?
- c# - DocumentDB Linq 按列表中的对象属性查询
- python - 当条件为True时获取n维数组的索引python
- java - 使用句点时 Eclipse 操作失败
- javascript - 使用 ack SocketIO 与 iOS 发出
- python - Python中bin()的时间复杂度