所以我試圖讓這個作業。我知道如何排序,使用 nlargest 或使用密集方法的排名。但不知何故,我仍然迷路了。
這是我想要實作的目標:
- 我總是希望根據某個值(1、2、3)獲得前 3 行
- 但是,如果有多行具有相同的值,那么我想要超過 3 行(例如 1,2,2,3 應該回傳 4 行)
假設我有這些資料

我想根據最低分數選擇前 3 行,我想得到這個

正如我所說,我想要前 3 行,但如果有相同的分數,應該得到 4 或更多。
我在嘗試過的所有組合中都迷失了方向。有沒有一種簡單的方法可以做到這一點?
uj5u.com熱心網友回復:
您可以創建一個包含分數列的 3 個最小值的陣列,然后用于isin過濾您的資料框:
some_vals = pd.Series(df['Score'].unique()).nsmallest(3).values
df[df['Score'].isin(some_vals)]
Name Score
0 John 1
1 Mark 2
2 Perry 2
3 Dion 3
這樣,您可以確保所有在 Score 中的值等于 3 個最小值中的任何一個的名稱都將被回傳。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/411294.html
標籤:
