为了账号安全,请及时绑定邮箱和手机立即绑定

python - GroupBy 总和在开始和结束日期范围内的比例

python - GroupBy 总和在开始和结束日期范围内的比例

函数式编程 2021-10-05 16:54:53
我正在我的 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 datetimefrom dateutil.relativedelta import relativedeltadf.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   |+--------------------------------+谢谢
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 206 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信