2017-05-21 2 views
2

私は州の犯罪率のデータフレームを持っており、最も犯罪率の高い郊外10位をランク付けしたいと思います。現時点では、私は.rank()を使うことができますが、犯罪の価値ではなく、郊外の名前を出力したいのです最大値から第10の値までランク付けし、パンダの対応する行を出力します

ありがとう!

+1

は、あなたがしようとしているデータやコードの一部を投稿することができますか? – spies006

答えて

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 

データのニュアンスが原因でこの解決策が機能しない場合は、データを投稿して改訂します。

0

keep引数でnlargestを使用して、タイの処理方法を判断できます。

犯罪率によって

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 
関連する問題