[英]Python pandas resample by day, group by value
我正在嘗試創建每位用戶每天每張票的總時間的堆積條形圖,我的DataFrame
如下所示:
date_timestamp ticket time user
23/03/2015 12:00:00 D-146 120 blgo
04/04/2015 12:00:00 D-173 15 blgo
29/04/2015 12:00:00 P-110 60 frle
29/04/2015 15:47:29 P-113 180 chki
29/04/2015 15:47:55 P-113 30 chki
30/04/2015 12:00:00 P-108 240 frle
30/04/2015 12:00:00 P-116 120 hahe
30/04/2015 13:46:25 P-116 240 hahe
01/05/2015 09:20:48 P-113 120 frle
01/05/2015 09:39:13 P-107 45 frle
圖表上的每個條形圖都代表一天中的一個用戶-條形圖的高度將表示當天花費的總時間(以分鍾為單位),並按比例除以用戶當天登錄每張票證的時間。
我知道我可以使用以下方法獲得每位用戶每天的總時間:
df[(df.user == 'blgo')]['time'].resample('B',how='sum').fillna(0)
我也知道我可以按票證對數據幀進行分組,如下所示:
df2=df['time'].groupby(df['ticket'])
大概是要實現我的目標,我需要為每個用戶提供一個數據框,其中索引上的天數為單位,工單為列,每個單元格將是當天該工單上記錄的總時間。
任何幫助或建議,將不勝感激。
您可能需要進行一些其他調整,具體取決於您希望如何在沒有特定用戶貢獻的情況下處理工作日,但是所需的基本結構是數據透視表 。 從您的數據框開始:
df.reset_index()
df['date'] = df['date_timestamp'].dt.date
del df['date_timestamp']
df2 = pd.pivot_table(df, index=['date', 'user'], columns=['ticket'], values='time', aggfunc=np.sum)
df2.fillna(value=0, inplace=True)
df2.plot(kind='bar', stacked=True)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.