我有一个关于该州犯罪率的数据框,我想排名前10个犯罪率最高的郊区。目前,我可以使用.rank(),但我想输出郊区的名称,而不是犯罪的价值
谢谢!
答案 0 :(得分:0)
我不得不推断出数据的样子,因为您还没有提供数据样本。但是,如果数据看起来像这样......
>>> 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
然后只需使用ascending=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
如果此解决方案由于数据的细微差别而无效,则发布数据,我会进行修改。
答案 1 :(得分:0)
您可以将nlargest
与keep
参数一起使用,以确定如何处理关系。
创建虚拟数据
df = pd.DataFrame({'Suburb':['Suburb No.'+str(i) for i in range(35)],'Crime Rate':np.random.randint(15,45,35)/100})
按犯罪率计算前10名郊区
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