簡體   English   中英

Python熊貓按天重新采樣,按值分組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM