python - 跨数据框计算不同价格类型的价格 - Python
问题描述
对于我正在做的一个项目,我目前有 3 个数据框。这些是针对产品、客户和订单的。可以在下面找到这些的简单版本,实际的订单框架大约有 10.000 列。情况如下:产品有不同的价格类别,每个客户对每个类别都有一个特价。我目前有一个订单数据框,其中包含订单客户、产品编号、订购产品的数量和日期。
我现在想在订单数据框中的新列中添加订单价格。我设法在那里获得了产品的类别,但我不知道如何从那里开始,或者是否是正确的方法。任何帮助将不胜感激,在数据帧图片下方,我包含了制作这些示例数据帧的代码。
df_products:
df_customers:
df_orders:
创建数据框的代码:
import pandas as pd
df_products = pd.DataFrame({'product_number': [1, 2, 3], 'product': ['product 1', 'product 2', 'product 3' ], 'price_type': ['X', 'Y', 'Z']})
df_customers = pd.DataFrame({'customer_number': [1, 2, 3], 'customer': ['customer 1', 'customer 2', 'customer 3' ], 'price_x': [7.50, 10.50, 12.50], 'price_y': [6.50, 9.20, 11.30], 'price_z': [8.50, 10.10, 13.40]})
df_orders = pd.DataFrame({'order_number': [1, 2, 3], 'date': ['19-03-2020', '19-03-2020', '20-03-2020' ], 'customer_number': [1, 3, 2], 'product_number': [1, 2, 3], 'amount': [1, 2, 2]})
提前致谢 :)
解决方案
如果数据帧的长度相同,您可以简单地添加一个新列。下面我向 df_orders 添加一个新列 'price' 并使用来自 df_customers['price_y'] 的值填充它。
像这样,
df_orders['price']=df_customers['price_y']
结果是,
df_orders.head()
order_number date customer_number product_number amount price
0 1 19-03-2020 1 1 1 6.5
1 2 19-03-2020 3 2 2 9.2
2 3 20-03-2020 2 3 2 11.3
推荐阅读
- swift - GMSGeocoder 在通知服务扩展 iOS 中给出线程 5: EXC_BAD_ACCESS (code=1, address=0x0)
- python - 如何从 python 脚本在新窗口上打开批处理
- python - 应用程序内的达芙妮 Django 频道异常:('不支持的 URI 方案','http')
- javascript - 如何将 i 从 for 循环传递到 jquery 中的 id 标签?
- android - 在 Flutter 中运行默认代码时,发现任务 ':app:processDebugManifest' 的配置存在问题
- c++ - 在 C++ 中获取音频输出流
- python - 跨列时间序列的数据框中的条件计数
- c++ - 如何在 C++ 和 QT 中使用 Gecko
- python - 使用 cx_freeze 从多个 python 脚本制作一个可执行的 python 程序
- r - 如何在运行总计中对文本标记进行评分?