Python ŌĆō 如何按组大小对 Pandas dataframe 进行排序?
要对 Pandas dataframe 进行分组,我们使用 groupby()。要按升序或降序排序分组的 dataframe,请使用 sort_values()。使用 size() 方法可获取 dataframe 的大小。
要进行升序排序,请在 sort_values() 中使用以下内容 –
ascending=True
要进行降序排序,请在 sort_values() 中使用以下内容 –
ascending=False
首先,创建一个 pandas dataframe
dataFrame = pd.DataFrame(
{
"Car": ['宝马', '雷克萨斯', '奥迪', '奔驰', '捷豹', '宾利'],
"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": ['宝马', '雷克萨斯', '奥迪', '奔驰', '捷豹', '宾利'],
"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 宝马 1000
1 雷克萨斯 1400
2 奥迪 1000
3 奔驰 900
4 捷豹 1700
5 宾利 900
按降序排序...
Reg_Price
1000 2
900 2
1700 1
1400 1
dtype: int64
按升序排序...
Reg_Price
1400 1
1700 1
900 2
1000 2
dtype: int64