数据框中的朋友我
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列值)?
答案 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)`