這一行:
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)
這也沒有給出正確的輸出。任何幫助將不勝感激。
uj5u.com熱心網友回復:
您可以按計數對資料框進行排序,然后洗掉任何重復項,這將保留每個weakness.
df.sort_values('count', ascending=False).drop_duplicates(['weakness'])
為了確保型別按字母順序排列,您也可以添加type到排序中:
df.sort_values(['count', 'type'], ascending=[False, False]).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
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/325894.html
標籤:Python 熊猫 数据框 pandas-groupby
下一篇:如何按長度對資料幀字典進行排序
