Python – 按組大小排序 Pandas 資料框?


為了對 Pandas 資料框進行分組,我們使用 groupby()。要按升序或降序對分組後的資料框進行排序,請使用 sort_values()。size() 方法用於獲取資料框的大小。

步驟

按組大小對 Pandas 資料框進行排序的步驟如下所示。

  • 匯入 Pandas 庫並建立一個 Pandas 資料框。

  • 使用 **groupby()** 函式對列進行分組,並使用 **sort_values()** 函式按降序排序。

  • 使用 **sort_values()** 函式按升序排序。

建立 Pandas 資料框

首先匯入 Pandas 庫,然後建立一個 Pandas 資料框。

import pandas as pd

# dataframe with one of the columns as Reg_Price
dataFrame = pd.DataFrame({
   "Car": ['BMW', 'Lexus', 'Audi', 'Mercedes', 'Jaguar', 'Bentley'],
   "Reg_Price": [1000, 1400, 1000, 900, 1700, 900],
   
})

分組和排序

按 Reg_Price 列分組,並透過設定 **ascending=False** 按降序排序。

dataFrame.groupby('Reg_Price').size().sort_values(ascending=False)

接下來,按 Reg_Price 列分組,並透過設定 **ascending=True** 按升序排序。

dataFrame.groupby('Reg_Price').size().sort_values(ascending=True)

示例

在示例程式碼中,資料框包含 **Car** 和 **Reg_Price** 列。我們使用 **groupby()** 函式按 Reg_Price 列分組,並計算每個組的大小,然後使用 **sort_values()** 函式按降序和升序對這些組的大小進行排序。

import pandas as pd

# dataframe with one of the columns as Reg_Price
dataFrame = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Audi', 'Mercedes', 'Jaguar', 'Bentley'],

      "Reg_Price": [1000, 1400, 1000, 900, 1700, 900]
   }
)

print("DataFrame...\n",dataFrame)

# group according to Reg_Price column and sort in descending order
print("Sorted in Descending order...\n")
print(dataFrame.groupby('Reg_Price').size().sort_values(ascending=False))

# group according to Reg_Price column and sort in ascending order
print("Sorted in Ascending order...\n")
print(dataFrame.groupby('Reg_Price').size().sort_values(ascending=True))

輸入資料框

車型 註冊價格
0 寶馬 1000
1 雷克薩斯 1400
2 奧迪 1000
3 梅賽德斯 900
4 捷豹 1700
5 賓利 900

降序排列

註冊價格
1000 2
900 2
1700 1
1400 1

升序排列

註冊價格
1400 1
1700 1
900 2
1000 2

更新於:2024年10月9日

9K+ 次瀏覽

開啟您的 職業生涯

完成課程獲得認證

開始學習
廣告