我有这样的df _,
name level status
yes high open
no high closed
no med closed
yes low open
no med rejected
no high open
我正在尝试使用index='level',columns='status', values=sum of occurances with respect to the column and index
我的代码:
df_['temp']=df_['level'].astype(bool).astype(int)
df_.pivot(index='level',columns='status',values='temp')
但是给我ValueError: Index contains duplicate entries, cannot reshape
我的预期输出是
open closed rejected
high 2 1 0
med 0 1 1
low 1 0 0
请检查并告诉我是否还有其他简便方法。
答案 0 :(得分:3)
一种更简单的方法是计算name
的出现次数:
df_.pivot_table(values='name',
index='level',
columns='status',
aggfunc='count',
fill_value=0)