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+ 次浏览

开启您的 职业生涯

完成课程获得认证

开始学习
广告