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
添加回答
舉報
