Groupby并计算唯一值的数量(Pandas)

Lum*_*mos 3 python unique count dataframe pandas

我有一个包含2个变量的数据框:IDoutcome.我想groupby ID第一,和计数的唯一值的数量outcome之内ID.

df
ID    outcome
1      yes
1      yes
1      yes
2      no
2      yes
2      no
Run Code Online (Sandbox Code Playgroud)

预期产量:

ID    yes    no
1      3     0
2      1     2
Run Code Online (Sandbox Code Playgroud)

我的代码df[['PID', 'outcome']].groupby('PID')['outcome'].nunique()给出了唯一值本身的编号,例如:

ID
1   2
2   2
Run Code Online (Sandbox Code Playgroud)

但是我需要的是yesno,我怎么能实现呢?谢谢!

cs9*_*s95 5

怎么样pd.crosstab

In [1217]: pd.crosstab(df.ID, df.outcome)
Out[1217]: 
outcome  no  yes
ID              
1         0    3
2         2    1
Run Code Online (Sandbox Code Playgroud)