0

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
jpp
  • 159,742
  • 34
  • 281
  • 339
Thabra
  • 337
  • 2
  • 9

1 Answers1

0

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
jpp
  • 159,742
  • 34
  • 281
  • 339