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 的值计数排序为中间步骤,那就更好了。
您正在寻找.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)