I have a dataframe like this:
user events
A X
A X
A Y
B Z
Using pandas, how can I get a final dataframe like the following?
user X Y Z
A 2 1 0
B 0 1 1
You can use pd.pivot_table
:
res = df.pivot_table(index='user', columns='events',
aggfunc=len, fill_value=0)
print(res)
events X Y Z
user
A 2 1 0
B 0 0 1