在python中获得明智的平均任务时间

时间:2018-04-11 06:05:20

标签: python pandas

数据框中的朋友我

ID      creationdateTime     Totaltime
283318  2018-03-30 18:54:18  64.7000
283316  2018-03-30 18:50:35  87.4000
283249  2018-03-30 17:55:51  114.9333
283213  2018-03-30 17:34:54  107.8500
283197  2018-03-30 16:25:15  71.8000
283178  2018-03-30 15:13:10  140.5500
283171  2018-03-30 10:09:18  108.1833
283154  2018-03-30 08:59:11  116.1333

该列表将为所有ID提供1年的明智数据。

我可以使用哪种型号来获得趋势?我怎样才能获得完成任务所需的平均时间(第3列值)?

2 个答案:

答案 0 :(得分:0)

如果我理解正确,你有第二或分钟的数据,你想计算一天的平均值。 首先,您必须将creationdateTime时间列明天组合起来,这可以通过Grouper功能完成,然后您可以使用均值函数,这样它就可以获得当天每个条目的第3列中的平均值。

daywisedf = df.groupby(pd.Grouper(key='creationdateTime',freq='1d')).mean()

这将获得第3列中每天的平均值。

注意:您的creationdateTime应采用日期时间格式才能使用Grouper。

有关详细信息,请访问Pandas docs:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Grouper.html

答案 1 :(得分:0)

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Application.ScreenUpdating = False Sheet1.Sort.SortFields.Clear Sheet1.Sort.SortFields.Add Key _ :=Range("A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With Sheet1.Sort .SetRange Range("A:D") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Sheet2.Sort.SortFields.Clear Sheet2.Sort.SortFields.Add Key _ :=Range("A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With Sheet2.Sort .SetRange Range("A:D") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With SaveAsUI = False Cancel = False Application.ScreenUpdating = True End Sub 作为索引。

creationdateTime

然后,

df.set_index('creationdateTime', inplace=True)

显示趋势:

df['2018-03-30 18'].Totaltime.mean()
df['2018-03-30'].Totaltime.mean()
df['2018-03'].Totaltime.mean()
df.resample('D', kind='period').mean()  # more `rule`, please check `help(df.resample)`