亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

獲取數據透視表中列部分的平均值

獲取數據透視表中列部分的平均值

斯蒂芬大帝 2022-04-23 16:55:34
我有以下數據透視表。我通過這樣做創建:table = pd.pivot_table(df,index=['day_of_week','date'],values=['dt_hours'],aggfunc=np.sum)問題是我不知道如何獲得dt_hour所有日子的平均值。因此,我成功地采用了以下平均值:[0.564167, 2.835278, ... , 1.119444, 8.287778]我這樣做是:table['dt_hours']['Friday'].mean()但我需要一個列表中所有天的平均值。所以: Friday average = 15.69706 Tuesday average = 7.56426 Wednesday average = 6.84077 etc.我想將其放入數據框或字典中,因為我想對此進行繪圖。有任何想法嗎?!
查看完整描述

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 


查看完整回答
反對 回復 2022-04-23
  • 1 回答
  • 0 關注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號