我正在我的 Python 探索之旅中查看这个无人机租赁数据集,并试图GroupBy在结果列中显示每个无人机每个月的收入。
如果结果与特定日期相关联,我通常可以这样做,但由于这是一个长期租赁业务,我需要计算出在开始日期和结束日期之间每个月有多少结果可归因于。
+------+------------------+------------------+--------+
| Drone| Start | End | Result |
+------+------------------+------------------+--------+
| DR1 16/06/2013 10:30 22/08/2013 07:00 2786 |
| DR1 20/04/2013 23:30 16/06/2013 10:30 7126 |
| DR1 24/01/2013 23:00 20/04/2013 23:30 2964 |
| DR2 01/03/2014 19:00 07/05/2014 18:00 8884 |
| DR2 04/09/2015 09:00 04/11/2015 07:00 7828 |
| DR2 04/10/2013 05:00 24/12/2013 07:00 5700 |
+-----------------------------------------------------+
我能够使用这个找到日期的差异:
import datetime
from dateutil.relativedelta import relativedelta
df.Start = pd.to_datetime(df.Start)
df.End = pd.to_datetime(df.End)
a = df.loc[0, 'Start']
b = df.loc[0, 'End']
relativedelta(a,b)
然而,输出打印如下:
相对增量(月=-2,天=-5,小时=-20,分钟=-30)
我不能像使用 GroupBy 数据集有一个日期那样使用它来计算可归属的现金
df.groupby(['Device', 'Date']).agg(sum)['Result']
我将不胜感激有关解决此类问题的正确思考过程以及代码外观的帮助。
以每种无人机类型的第一个示例为例,我的预期输出是:
+------+-------+-------+---------+
|Drone | Month | Days | Result |
+------+-------+-------+---------+
|DR1 June X $YY |
|DR1 July X $YY |
|DR1 August X $YY |
|DR2 March Y $ZZ |
|DR2 April Y $ZZ |
|DR2 May Y $ZZ |
+--------------------------------+
谢谢
相关分类