按多列對 Pandas Dataframe 進行排序
按多列對 Pandas Dataframe 進行排序是資料分析中的常見操作。考慮一個包含「a」、「b」和「c」列的資料框。若要按「b」列升序和「c」列降序對此資料框進行排序,請依照下列步驟操作:
從Pandas 版本0.17.0 開始,排序方法已被棄用,轉而使用sort_values。從版本 0.20.0 開始,排序已完全刪除。但是,參數和結果保持不變:
df.sort_values(['a', 'b'], ascending=[True, False])
使用已棄用的排序的等效方法方法為:
df.sort(['a', 'b'], ascending=[True, False])
例如,考慮一個資料幀 df1,其列「a」和「b」中具有隨機整數值:
import pandas as pd import numpy as np df1 = pd.DataFrame(np.random.randint(1, 5, (10, 2)), columns=['a', 'b'])
依'a' 升序排序此資料幀order 和'b' 依降序排列給出:
df1.sort(['a', 'b'], ascending=[True, False])
a b 2 1 4 7 1 3 1 1 2 3 1 2 4 3 2 6 4 4 0 4 3 9 4 3 5 4 1 8 4 1
請記住,預設排序方法不是就地排序。若要使用排序值更新df1,請將排序方法的結果指派給df1 或在方法呼叫中使用inplace=True:
df1 = df1.sort(['a', 'b'], ascending=[True, False])
或
df1.sort(['a', 'b'], ascending=[True, False], inplace=True)
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3