簡體   English   中英

在 Python 中按 client_id 分組並計算歸屬事件

[英]Group by client_id and count belonging events in Python

我是 Python 新手,正在處理我有這樣一個數據集的情況:

client_id    event_name
123          event_1
1234         event_1
123          event_2
12           event_1
123          event_1

我想調整我的數據集,以便為每個客戶端計算事件,如下所示:

client_id    event_1  event_2
123          2        1
1234         1        0
12           1        0

我的目標與主題類似,但我的事件在同一列(event_name)中,需要拆分為不同的列(event_1、event_2 等)。

我已經為此苦苦掙扎了一天,我認為 Python 可能有一個我目前看不到的簡單解決方案。 如果有人可以幫助我,那就太好了!

client-id、每個事件的count_valuesunstack 分組

data.groupby('client_id')['event_name'].value_counts().unstack().reset_index(drop=False)

如果df數據框如下所示:

>>> df = pd.DataFrame({'client_id': [123, 1234, 123, 12, 123], 'event_name': ['event_1', 'event_1', 'event_2', 'event_1', 'event_1']})
>>> print(df)
   client_id event_name
0        123    event_1
1       1234    event_1
2        123    event_2
3         12    event_1
4        123    event_1

您可以使用pandas.pivot_table()如下。

>>> df.pivot_table(index='client_id', columns='event_name', aggfunc=len, fill_value=0)
event_name  event_1  event_2
client_id                   
12                1        0
123               2        1
1234              1        0

暫無
暫無

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

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