按元素频率将Python Pandas中的DataFrame按降序排序
若要按升序或降序排序数据,请使用sort_values()方法,要按降序排序,请在sort_values()方法中使用以下内容-
ascending=False
导入必要的库-
import pandas as pd
创建一个有3列的DataFrame −
dataFrame = pd.DataFrame(
{
"Car": ['BMW', 'Lexus', 'BMW', 'Mustang', 'Mercedes', 'Lexus'],"Reg_Price": [7000, 1500, 5000, 8000, 9000, 2000],"Place": ['Pune', 'Delhi', 'Mumbai', 'Hyderabad', 'Bangalore', 'Chandigarh']
}
)
要按元素频率将DataFrame按降序排序,需要计算出现次数。因此,使用sort_values()设置降序排序的同时也要使用count()−
dataFrame.groupby(['Car'])['Reg_Price'].count().reset_index(name='Count').sort_values(['Count'], ascending=False)
示例
以下是代码 −
import pandas as pd
# 创建DataFrame
dataFrame = pd.DataFrame(
{
"Car":["BMW", "Lexus", "BMW", "Mustang", "Mercedes", "Lexus"],"Reg_Price":[7000,1500,5000,8000,9000,2000],"Place":["Pune", "Delhi", "Mumbai", "Hyderabad", "Bangalore", "Chandigarh"]
}
)
print "DataFrame...\n",dataFrame
# 按元素频率将DataFrame按降序排序
dataFrame = dataFrame.groupby(['Car'])['Reg_Price'].count().reset_index(name='Count').sort_values(['Count'], ascending=False)
print "\nSorting DataFrame...\n",dataFrame
输出
这将产生以下输出 −
DataFrame...
Car Place Reg_Price
0 BMW Pune 7000
1 Lexus Delhi 1500
2 BMW Mumbai 5000
3 Mustang Hyderabad 8000
4 Mercedes Bangalore 9000
5 Lexus Chandigarh 2000
Sorting DataFrame...
Car Count
0 BMW 2
1 Lexus 2
2 Mercedes 1
3 Mustang 1