python - 获取 Pandas Groupby 对象的最大数量
问题描述
这一行:
gf = df.groupby(['weakness','type']).size()
给出以下输出:
weakness type
fighting normal 6
fire bug 1
flying 1
grass 11
flying fighting 3
grass rock 1
water 1
ground electric 1
poison fairy 3
rock fire 1
water fire 9
ground 4
rock 4
dtype: int64
但是如何只获得某个“弱点”的最大“类型”,如下所示。对于具有相同值的计数,将考虑字母顺序。
weakness type count
fighting normal 6
fire grass 11
flying fighting 3
grass rock 1 ......etc
我试过的
首先,我尝试通过以下方式将 groupobject 转换为数据框:
gdf = gf.groupby(['weakness','type']).size().reset_index(name='count')
然后我尝试了:
gdf.groupby(["weakness","type"]).count().sort_values("count").groupby(level=0).tail(1)
这也没有给出正确的输出。任何帮助将不胜感激。
解决方案
您可以按计数对数据帧进行排序,然后删除任何重复项,这将保留每个weakness
.
df.sort_values('count', ascending=False).drop_duplicates(['weakness'])
要确保类型按字母顺序排列,您也可以添加type
到排序中:
df.sort_values(['count', 'type'], ascending=[False, True]).drop_duplicates(['weakness'])
结果:
weakness type count
3 fire grass 11
10 water fire 9
0 fighting normal 6
8 poison fairy 3
4 flying fighting 3
7 ground electric 1
9 rock fire 1
5 grass rock 1
推荐阅读
- react-native - 使用 reat-native-maps 时如何关闭键盘?
- java - 用户单击弹出窗口中的按钮后,如何在主活动中添加新按钮?
- javascript - 如何通过 panzoom 以编程方式平滑缩放到一个点?
- javascript - Javascript拼接最后一个元素
- python - 如何在 CMD 上使用 pip 安装 Kivy
- python - 参数标志,不使用时为空,不使用时为默认值
- excel - 从变体类型转换为 IRR 双精度类型数组
- python - 为什么 Sklearn 中的 GridSearchCV 没有选择最好的 R 平方值?
- swift - 改变位置后的快速SceneKit球体变形
- python - 由于属性关系修改类声明中的对象属性