Pandas 从最大值到第10个值排序,并输出其对应的行
我有一个该州犯罪率的数据框架,我想把犯罪率最高的10个郊区排在前面。目前,我可以使用.rank(),但我想输出郊区的名称,而不是犯罪的价值Pandas 从最大值到第10个值排序,并输出其对应的行,pandas,dataframe,max,rank,Pandas,Dataframe,Max,Rank,我有一个该州犯罪率的数据框架,我想把犯罪率最高的10个郊区排在前面。目前,我可以使用.rank(),但我想输出郊区的名称,而不是犯罪的价值 谢谢 我被迫推断数据是什么样子,因为您没有提供数据样本。但是,如果数据是这样的 >>> df = pd.DataFrame({'state':['NH', 'CA', 'MA', 'FL'], 'crime_rates':[0.5, 1.3, 0.9, 1.1]}) >>> df crime_rates state
谢谢 我被迫推断数据是什么样子,因为您没有提供数据样本。但是,如果数据是这样的
>>> df = pd.DataFrame({'state':['NH', 'CA', 'MA', 'FL'], 'crime_rates':[0.5, 1.3, 0.9, 1.1]})
>>> df
crime_rates state
0 0.5 NH
1 1.3 CA
2 0.9 MA
3 1.1 FL
然后简单地使用升序=False进行排序将返回按犯罪率排序的状态
>>> df.sort_values('crime_rates', ascending=False)
crime_rates state
1 1.3 CA
3 1.1 FL
2 0.9 MA
0 0.5 NH
如果此解决方案因数据中的细微差别而无效,请发布数据,我将进行修改。您可以使用keep
参数来确定如何处理领带
创建虚拟数据
df = pd.DataFrame({'Suburb':['Suburb No.'+str(i) for i in range(35)],'Crime Rate':np.random.randint(15,45,35)/100})
按犯罪率计算排名前十的郊区
df.nlargest(10, 'Crime Rate')
输出:
Crime Rate Suburb
22 0.43 Suburb No.22
2 0.41 Suburb No.2
15 0.41 Suburb No.15
20 0.41 Suburb No.20
29 0.41 Suburb No.29
8 0.40 Suburb No.8
30 0.40 Suburb No.30
34 0.37 Suburb No.34
3 0.36 Suburb No.3
9 0.35 Suburb No.9
您可以发布您尝试过的部分数据和代码吗?