Python Pandas - 根据元素频率按升序对 DataFrame 进行排序
要按升序或降序对数据进行排序,请使用 sort_values() 方法。对于升序,请使用以下 sort_values() 方法 −
ascending=True
导入所需的库 −
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=True)
范例
以下为代码 −
import pandas as pd # Create 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 # Sort DataFrame in ascending order according to the element frequency dataFrame = dataFrame.groupby(['Car'])['Reg_Price'].count().reset_index(name='Count').sort_values(['Count'], ascending=True) print"\nSorting DataFrame in ascending order ...\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 in ascending order ... Car Count 2 Mercedes 1 3 Mustang 1 0 BMW 2 1 Lexus 2
广告