如何使用python找到最常见的集合?

Jam*_*ves 1 python set pandas

我有一个pandas数据框,其中一列是学生所有课程的列表.索引是学生的ID.

我想找到所有学生最常见的课程.例如,如果数据框如下所示:

ID    |     Courses
1           [A, C]
2           [A, C]
3           [A, C] 
4           [B, C]
5           [B, C]
6           [K, D] 
...
Run Code Online (Sandbox Code Playgroud)

然后我希望输出返回最常见的集合及其频率,如:

{[A,C]: 3, [B,C]: 2}
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 5

您可以先转换listtuples然后再转换value_counts.上次使用to_dict:

print (df.Courses.apply(tuple).value_counts()[:2].to_dict())
{('A', 'C'): 3, ('B', 'C'): 2}
Run Code Online (Sandbox Code Playgroud)