Python – 按组大小对分组的 Pandas 数据框进行排序?

pythonserver side programmingprogramming更新于 2025/10/21 4:28:17

要对 Pandas 数据框进行分组,我们使用 groupby()。要按升序或降序对分组的数据框进行排序,请使用 sort_values()。 size() 方法用于获取数据框大小。

对于升序排序,在 sort_values() 中使用以下内容 −

ascending=True

对于降序排序,在 sort_values() 中使用以下内容 −

ascending=False

首先,创建一个 pandas 数据框 −

dataFrame = pd.DataFrame(
    {
    "Car": ['BMW', 'Lexus', 'Audi', 'Mercedes', 'Jaguar', 'Bentley'],
    "Reg_Price": [1000, 1400, 1000, 900, 1700, 900]
    }
)

接下来,按照 Reg_Price 列分组,并按降序排序 −

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

接下来,按照 Reg_Price 列分组,并按升序排序 −

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

示例

以下是代码 −

import pandas as pd

# dataframe 其中一列为 Reg_Price
dataFrame = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Audi', 'Mercedes', 'Jaguar', 'Bentley'],

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

print"DataFrame...\n",dataFrame

# 根据 Reg_Price 列分组并按降序排序
print"按降序排序...\n";
print(dataFrame.groupby('Reg_Price').size().sort_values(ascending=False))

# 根据 Reg_Price 列分组并按升序排序
print"按升序排序...\n";
print(dataFrame.groupby('Reg_Price').size().sort_values(ascending=True))

输出

这将产生以下输出 −

DataFrame...
       Car   Reg_Price
0      BMW        1000
1    Lexus        1400
2     Audi        1000
3 Mercedes         900
4   Jaguar        1700
5  Bentley         900
Sorted in Descending order...

Reg_Price
1000    2
900     2
1700    1
1400    1
dtype: int64
Sorted in Ascending order...

Reg_Price
1400    1
1700    1
900     2
1000    2
dtype: int64

相关文章


有用资源