我有一個看起來像這樣的熊貓資料框(為了簡單起見,我不包括其他列)
Country City Rank
USA New York 7
UK London 6
UK London 6
USA New York 4
Spain Madrid 9
USA New York 8
USA Boston 5
... ... ...
我試圖按國家分組,然后按城市分組。此外,我想計算計數、平均值和中位數,然后先按平均值排序,然后再按計數排序。
我已經能夠使用這段代碼獲得以下格式的資料:
df_3 = df_2[["Country", "City", "Rank"]].groupby(
["Country", "City"]).agg(['count', 'mean', 'median'])
Rank
count mean median
Country City
Spain Madrid 1 -- --
USA Boston 1 -- --
New York 3 -- --
UK London 2 -- --
現在,對于每個國家/地區,我希望能夠先按均值然后按計數對城市進行降序排序。我不知道該怎么做。任何幫助高度贊賞。
uj5u.com熱心網友回復:
我認為你會希望level=Country在這種情況下保持 multiindex 的分組,你首先必須重置索引然后對值進行排序Country,mean然后count再次設定索引
cols = ['Country', 'City']
(
df
.groupby(cols)['Rank']
.agg(['count', 'mean', 'median'])
.reset_index()
.sort_values(['Country', 'mean', 'count'], ascending=[1, 0, 0])
.set_index(cols)
)
結果
count mean median
Country City
Spain Madrid 1 9.000000 9.0
UK London 2 6.000000 6.0
USA New York 3 6.333333 7.0
Boston 1 5.000000 5.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/514793.html
標籤:Python熊猫排序
上一篇:兩級排序演算法如何作業?
