计算不同类型的开销-Pandas/Numpy-Python
我有两个数据帧:计算不同类型的开销-Pandas/Numpy-Python,python,pandas,numpy,analysis,Python,Pandas,Numpy,Analysis,我有两个数据帧: df1 +------------+-------------+------+ | Product ID | Cost Method | Rate | +------------+-------------+------+ | 10 | CPM | 10 | | 20 | CPC | 0.3 | | 30 | CPCV | 0.4 | | 40 | FLF
df1
+------------+-------------+------+
| Product ID | Cost Method | Rate |
+------------+-------------+------+
| 10 | CPM | 10 |
| 20 | CPC | 0.3 |
| 30 | CPCV | 0.4 |
| 40 | FLF | 100 |
| 50 | VAD | 0 |
| 60 | CPM | 0.1 |
+------------+-------------+------+
df2
+--------+------------+-------------+--------+-----------------+
| Date | Product ID | Impressions | Clicks | Completed Views |
+--------+------------+-------------+--------+-----------------+
| 01-Jan | 10 | 300 | 4 | 0 |
| 02-Jan | 20 | 30 | 3 | 0 |
| 03-Jan | 30 | 200 | 4 | 20 |
| 02-Jan | 40 | 300 | 4 | 0 |
| 02-Jan | 40 | 500 | 4 | 0 |
| 03-Jan | 40 | 200 | 3 | 0 |
| 04-Jan | 90 | 3000 | 3 | 0 |
| 05-Jan | 50 | 3000 | 5 | 0 |
+--------+------------+-------------+--------+-----------------+
理想的输出是:
+--------+------------+-------------+--------+-----------------+--------+
| Date | Product ID | Impressions | Clicks | Completed Views | Spend |
+--------+------------+-------------+--------+-----------------+--------+
| 01-Jan | 10 | 300 | 4 | 0 | $3 |
| 02-Jan | 20 | 30 | 3 | 0 | $1 |
| 03-Jan | 30 | 200 | 4 | 20 | $8 |
| 02-Jan | 40 | 300 | 4 | 0 | $50 |
| 02-Jan | 40 | 500 | 4 | 0 | $50 |
| 03-Jan | 40 | 200 | 3 | 0 | $- |
| 04-Jan | 90 | 3000 | 3 | 0 | $- |
| 05-Jan | 50 | 3000 | 5 | 0 | $- |
+--------+------------+-------------+--------+-----------------+--------+
其中:
即使我真的不应该回答你,我也要回答你。你是新的堆栈溢出(SO),所以让这是一个教育性的文章。请放心,这篇文章的语气并不是试图居高临下或苛刻
首先,要问一个恰当的问题(请阅读),你需要做两件事:
- 解释您尝试了什么(提供一个代码示例!),并解释您的问题所在。你的问题在当前的格式中肯定不符合要求。里面有5到6个完全不同的东西,感觉就像你在请别人做你的家庭作业
- 提供一个可行的例子李>
pd.read\u clipboard()
加载数据。这里的人都是志愿者,如果他们不得不花5到10分钟重新创建你的数据,他们可能不会这么做
我会这样做:
这是第一个数据帧,使用df1=pd.read\u剪贴板(index\u col=0)
加载它:
ProductID CostMethod Rate
10 CPM 10.0
20 CPC 0.3
30 CPCV 0.4
40 FLF 100.0
50 VAD 0.0
60 CPM 0.1
ProductID Date Impressions Clicks CompletedViews
10 01-Jan 300 4 0
20 02-Jan 30 3 0
30 03-Jan 200 4 20
40 02-Jan 300 4 0
40 02-Jan 500 4 0
40 03-Jan 200 3 0
90 04-Jan 3000 3 0
50 05-Jan 3000 5 0
这是第二个数据帧,使用df2=pd.read\u剪贴板(index\u col=0)
加载它:
ProductID CostMethod Rate
10 CPM 10.0
20 CPC 0.3
30 CPCV 0.4
40 FLF 100.0
50 VAD 0.0
60 CPM 0.1
ProductID Date Impressions Clicks CompletedViews
10 01-Jan 300 4 0
20 02-Jan 30 3 0
30 03-Jan 200 4 20
40 02-Jan 300 4 0
40 02-Jan 500 4 0
40 03-Jan 200 3 0
90 04-Jan 3000 3 0
50 05-Jan 3000 5 0
现在,就做作业而言,这里有一个建议的解决方案。我相信您将尝试理解此代码的作用,而不仅仅是重用它 步骤1:合并两个数据帧 我在df2左边合并,这真的很重要。请阅读有关的pandas文档中的更多内容 第2步:计算你的支出 我们将编写一个自定义函数,然后
您可能会注意到,我计算的“花费”与您的不完全相同,但这是因为您最初关于如何计算它的规范不是很好。您可以很容易地更改
calc\u Expense
功能,以满足您的需求。您好,我无意粗鲁,但这不是一项家庭作业服务。你试过什么吗?你遇到了什么具体的障碍?当然是朱利安!最大的问题是要确保FLF是按一天的总数计算的,然后按发生的次数进行分割。希·朱利安,非常感谢你的帮助。本周我开始使用Python(来自excel),我正在尝试将我的工作文件从excel迁移到Python(边学习边学习)。通常我都能把事情办好。但在这里我真的被难住了。我非常感谢你花时间回答这个问题。这对我来说真的很重要!下次我一定会按照你的建议把我的问题安排得更好
df3['Spend'] = df3.apply(calc_spend, axis=1)
df3