我正在我的 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 |+--------------------------------+謝謝
添加回答
舉報
0/150
提交
取消