1 回答
TA贡献1851条经验 获得超3个赞
检查以下是否适合您。我假设了一个带有虚拟数据的简化数据框,该数据框在以下答案中采用您的格式。dow这里对应day_of_week和hours对应dt_hours于你的情况。日期由第一个字母表示。即 f -> 星期五。
我们首先重置索引以使用布尔索引。然后找到hours每一天的值并循环遍历结果系列以找到平均值。
import pandas as pd
import numpy as np
df = pd.DataFrame({"dow": ["f", "f", "t", "t", "w","w"],
"date": ["3/7","2/3","6/7","5/6","1/2","4/2"],
"hours": ["21","34","56","78","32","88"]})
table = pd.pivot_table(df,index=['dow','date'],values=['hours'],aggfunc=np.sum)
t=table.reset_index()
avg_arr = []
print set(t.dow)
for day in set(t.dow):
vals=t[(t.dow==day)]['hours']
total = 0
c=0
for i,r in vals.iteritems():
c+=1
total+=float(r)
avg = total/(c)
avg_arr.append(avg)
print avg_arr
添加回答
举报
