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 |
广告