首頁 > 後端開發 > Python教學 > 如何按多列升序和降序對 Pandas DataFrame 進行排序?

如何按多列升序和降序對 Pandas DataFrame 進行排序?

Linda Hamilton
發布: 2024-12-15 08:49:09
原創
186 人瀏覽過

How to Sort a Pandas DataFrame by Multiple Columns in Ascending and Descending Order?

按多列對 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'對此資料框進行排序升序和降序的「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)
登入後複製

以上是如何按多列升序和降序對 Pandas DataFrame 進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板