【发布时间】:2022-01-20 11:27:36
【问题描述】:
以下数据集中的列将具有:
A:合约开仓日期;
B:合约终止日期;
C:与合同相关联的唯一帐户 ID(可以有多个合同针对一个 ID)
D:合同期间的每月收入 - 为简单起见,假设从第一个月合同产生的收入假定为合同结束前一个月的收入
Opp Start Date OPP contract end date Unique Account Field MRR(expected)
1/2/2013 1/2/2015 50e55 195.00
1/2/2013 1/2/2014 4ee75 50.00
1/2/2013 1/2/2014 4f031 75.00
1/2/2013 1/2/2016 4c3b2 133.00
1/2/2013 1/2/2016 49ec8 132.00
1/3/2013 1/3/2014 49fc8 59.00
1/4/2013 1/4/2015 49wc8 87.00
12/27/2013 12/27/2014 50bf7 190.00
12/27/2013 12/27/2014 49cc8 179.00
12/27/2013 12/27/2014 49ec8 147.00
等等…… 我想计算以下内容:
- 从 2013 年 1 月到 2014 年 12 月,每个月产生了多少收入?
- 从 2013 年 1 月到 2014 年 12 月,按月有多少有效合同(该月产生的收入)?
- 从 2013 年 1 月到 2014 年 12 月,每月有多少活跃帐户(从至少一份合同产生的收入)?
我尝试了以下代码: 我能够使用 sum() 来获得收入,但我不确定除此之外还能做什么。
from datetime import date
df['date'] = pd.to_datetime(df['Opp Start Date'])
df.groupby(df['Opp Start Date'].dt.strftime('%B'))['MRR(expected)'].sum().sort_values()
我从上面的代码得到的结果:
Opp Start Date
February 221744
January 241268
July 245811
August 247413
April 249702
March 251219
June 251494
May 259149
September 263395
October 293990
November 296590
December 311659
我需要计算以下。 如何在 python 中实现这一点?
【问题讨论】:
-
您使用的是哪个 dbms? (在日期/时间方面,许多产品远不符合 ANSI SQL。)
-
@jarlh SQL Server。我需要在 python/sql 中实现这一点
标签: python python-3.x pandas dataframe pandas-groupby