我有以下数据。我想先按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预期的结果是
a b c
1 1 y
1 2 y
2 1 z正确的方法是什么?如果我能够打印出具有c值计数作为中间步骤排序的每个组,那就更好了。
发布于 2020-04-10 18:26:46
尝试:
df=df.groupby(["a", "b", "c"])["c"].count().sort_values(ascending=False).reset_index(name="dropme").drop_duplicates(subset=["a", "b"], keep="first").drop("dropme", axis=1)产出:
a b c
0 2 1 z
2 1 2 y
3 1 1 yhttps://stackoverflow.com/questions/61143729
复制相似问题