Pandas:如何在组内进行值计数

ddd*_*ddd 1 python dataframe pandas

我有以下数据框。我想首先按a和进行分组b。在每一组中,我需要根据计数进行值计数,c并且只选择计数最多的那个。如果计数最多的一组有多个 c 值,则选择任意一个。

a    b    c
1    1    x
1    1    y
1    1    y
1    2    y
1    2    y
1    2    z
2    1    z
2    1    z
2    1    a
2    1    a
Run Code Online (Sandbox Code Playgroud)

预期结果是

a    b    c
1    1    y
1    2    y
2    1    z
Run Code Online (Sandbox Code Playgroud)

正确的做法是什么?如果我可以打印出每个组并将 c 的值计数排序为中间步骤,那就更好了。

jor*_*mit 8

您正在寻找.value_counts()

df.groupby(['a', 'b'])['c'].value_counts()
Run Code Online (Sandbox Code Playgroud)
a  b  c
1  1  y    2
      x    1
   2  y    2
      z    1
2  1  a    2
      z    2
Name: c, dtype: int64
Run Code Online (Sandbox Code Playgroud)