我想知道在进行1次、2次到3次以及3次以上评估的人群中,有多少人投了1、2、3、4和5分。例如,进行1次评估的组包含ID为2
和4
的人。在这个组中,总共有一个评估5
,和一个评估1
。你知道吗
df =
ID_PERSON EVALUATION_GRADE
1 2
1 2
1 3
1 5
2 5
3 2
3 5
3 1
4 1
5 2
5 1
5 1
结果应该是:
result =
FREQUENCY_GROUP GRADE_1 GRADE_2 GRADE_3 GRADE_4 GRADE_5
"1 time" 1 0 0 0 1
"2-3 times" 3 2 0 0 1
"> 3 times" 0 2 1 0 1
如果我这样做df.groupby(['EVALUATION_GRADE']).agg({'ID_PERSON': 'count'}).reset_index()
,那么我得到了1
、2
、3
、4
和5
的总人数。但是,如何将它们划分为频率组?你知道吗
这里有一个答案,应该推广到任何数量的等级或ID
输出
好吧,基本思想可以如下-使用^{} 来获得频率组,然后^{} 来透视数据:
您可以使用first ^{} with } 作为create bins,最后使用^{} with } 重塑形状并通过^{} 填充缺少的列:
size
first作为find frequency,然后使用^{size
,通过^{相关问题 更多 >
编程相关推荐