簡體   English   中英

PANDAS 按 2 列分組然后計數並取平均值

[英]PANDAS groupby 2 columns then count and mean

我有一個用戶數據框,每次他們進入一個網站時,它看起來像這樣:

(如果有 x 行具有相同的星期和日期,則表示用戶在該日期的 x 時間進入了站點)。

ID 星期 日期
1個 2個 20/07/21
2個 3個 23/07/21
2個 3個 23/07/21
2個 3個 26/07/21
2個 4個 30/07/21
2個 4個 30/07/21
2個 4個 30/07/21
2個 4個 21 年 7 月 31 日

到目前為止,我已經設法做到了這一點:

ID 星期 日期 天數
1個 2個 20/07/21 1個
2個 3個 23/07/21 2個
2個 3個 26/07/21 1個
2個 4個 30/07/21 3個
2個 4個 21 年 7 月 31 日 1個

使用此代碼:

df.groupby(['ID','week','date']).agg({'date':['count']})

但我需要計算每個用戶每周使用該網站的平均時間,因此每個用戶每周都有一行。 因此,我需要的 output 如下所示:

ID 星期 平均天數
1個 2個 1個
2個 3個 1.5
2個 4個 2個

任何想法如何繼續?

謝謝!!

使用:

(df.groupby(['ID', 'week', 'date'], as_index=False)['date']
 .agg('count')
 .groupby(['ID', 'week'], as_index=False)
 .agg(**{'mean days number': ('date', 'mean')})
)

Output:

   ID  week  mean days number
0   1     2               1.0
1   2     3               1.5
2   2     4               2.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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