0
我有興趣按每個組的條目數排序分組數據框。據我所知,我可以按照小組標籤排序,也可以根本不排序。假設我有10個條目屬於三個組。 A組有6名成員,B組有3名成員,C組有1名成員。現在,當我例如做一個grouped.describe(),我想要輸出的順序,以便顯示最多的組首先顯示。pandas:按組成員頻率對分組數據框進行排序
我有興趣按每個組的條目數排序分組數據框。據我所知,我可以按照小組標籤排序,也可以根本不排序。假設我有10個條目屬於三個組。 A組有6名成員,B組有3名成員,C組有1名成員。現在,當我例如做一個grouped.describe(),我想要輸出的順序,以便顯示最多的組首先顯示。pandas:按組成員頻率對分組數據框進行排序
我就從describe()
拆散的統計數據,那麼你可以簡單地使用sort()
,所以:
incsv = StringIO("""Group,Value
B,1
B,2
B,3
C,8
A,5
A,10
A,15
A,25
A,35
A,40""")
df = pd.read_csv(incsv)
groups = df.groupby('Group').describe().unstack()
Value
count mean std min 25% 50% 75% max
Group
A 6 21.666667 14.023789 5 11.25 20 32.5 40
B 3 2.000000 1.000000 1 1.50 2 2.5 3
C 1 8.000000 NaN 8 8.00 8 8.0 8
dfstats.xs('Value', axis=1).sort('count', ascending=True)
count mean std min 25% 50% 75% max
Group
C 1 8.000000 NaN 8 8.00 8 8.0 8
B 3 2.000000 1.000000 1 1.50 2 2.5 3
A 6 21.666667 14.023789 5 11.25 20 32.5 40
我逆轉的排序僅僅是一個例子,因爲它已經默認排序,但可以無論如何排序你想當然。
對於任何人可以通過計數排序而不丟棄或堆疊'價值'級別的獎金。 :)
試試這個作爲你的最後一步:''groups.sort([('Value','count')],ascending = False)',雖然不確定它實際上更有用 – Jeff
肯定比我更好。 xs(嘗試,我沒有意識到排序可以使用元組,這很好, –
謝謝!除了解決我手邊的問題之外,你還教會了我一些關於大熊貓的常用方法。 – user857661