Irohabook
0
4206

pandasのDataFrameを昇順・降順に並び替える方法(sort_valuesを使う)

pandas の DataFrame をソートするには sort_values を使う。

rows = df.sort_values('総合計')

ここで df は DataFrame である。このオブジェクトには sort_values というメソッドがあり、引数を列名とする列でソートする。例えば、すべてのコードは次のようになる。

import pandas as pd

df = pd.read_csv('H30.csv', encoding='SHIFT-JIS')
rows = df.sort_values('総合計')

print(rows)

pandas の sort_values で降順と昇順を指定する

sort_values のオプション引数 ascending に True または False を指定する。

小さいものから大きいものに向かって並び替えるには

rows = df.sort_values('総合計', ascending=True)

とする。反対も同様。全体のコードは次のようになる。

import pandas as pd

df = pd.read_csv('H30.csv', encoding='SHIFT-JIS')
rows = df.loc[df['市区町丁'].str.endswith('計')].sort_values('総合計', ascending=True)

print(rows)

出力結果を示すが、もとファイル H30.csv は警視庁のデータである。

           市区町丁     総合計  凶悪犯計  凶悪犯強盗  ...  その他占有離脱物横領  その他その他知能犯  その他賭博  その他その他刑法犯
5180      神津島村計       2     0      0  ...           0          0      0          0
5153   西多摩郡檜原村計       3     0      0  ...           0          0      0          2
5185    三宅島三宅村計       5     0      0  ...           0          1      0          0
5195      小笠原村計       6     0      0  ...           0          0      0          3
5172       大島町計       8     0      0  ...           0          0      0          2
5178       新島村計       8     0      0  ...           0          0      0          1
5190    八丈島八丈町計      10     0      0  ...           0          0      0          4
5165  西多摩郡奥多摩町計      31     0      0  ...           0          0      0          9
5150  西多摩郡日の出町計     131     0      0  ...           2          1      0         18
5147   西多摩郡瑞穂町計     319     1      1  ...           6          1      0         46
4574       狛江市計     378     2      1  ...          12          0      0         50
4965       羽村市計     413     2      1  ...          11          0      0         45
4920       稲城市計     444     1      0  ...           8          2      0         86
4533       福生市計     462     3      1  ...          18         10      0         69
5015     あきる野市計     505     4      1  ...          11          1      0         55
4684       清瀬市計     515     3      1  ...          17          0      0         50
4515       国立市計     531     4      3  ...          18          2      0         48
4819     武蔵村山市計     538     2      2  ...          13          2      0         70
4640      東大和市計     678     2      0  ...          21          7      0         70
4484      国分寺市計     712     2      1  ...          26          3      0         97
4764     東久留米市計     776     4      2  ...          13          0      0        101
3643       青梅市計     791     7      4  ...          25          0      0        117
4418      東村山市計     797     1      0  ...          23          2      0         98
4186      小金井市計     808     1      1  ...          48          5      0         97
4897       多摩市計     816     7      1  ...          26          1      0         94
3860       昭島市計     944     7      2  ...          25          4      0        111
3529       三鷹市計     951     1      1  ...          27          4      0        122
4364       日野市計    1010     8      2  ...          47          3      0        151
4261       小平市計    1062     4      4  ...          38          3      0        134
5126      西東京市計    1244     7      5  ...          27          6      0        162
...         ...     ...   ...    ...  ...         ...        ...    ...        ...
2187       荒川区計    1517    12      5  ...          70         16      0        208
3466      武蔵野市計    1623     6      3  ...          61          6      0        155
3962       調布市計    1721     1      0  ...          57          2      0        195
1135       目黒区計    1871     9      4  ...          73          8      0        232
3414       立川市計    1874    11      2  ...          57          8      0        194
210        中央区計    2271    15      8  ...          61         38      0        189
1796       中野区計    2554    13      9  ...         120          8      0        357
1046       品川区計    2602     9      8  ...         108         13      0        312
758        墨田区計    2617    25     11  ...          61         14      0        280
2133        北区計    2797    15     11  ...          82         16      0        344
4140       町田市計    2915    20      9  ...          58          9      0        447
653        台東区計    3153    19     12  ...         133         34      1        322
112       千代田区計    3204    11      8  ...         105         50      0        298
1935       杉並区計    3542    17     10  ...         122          9      0        445
2947       葛飾区計    3654    22     11  ...         100          9      0        484
3339      八王子市計    3779    26     10  ...         127         16      0        560
915        江東区計    3815    10      3  ...         144         43      1        416
325         港区計    3830    39     14  ...         145         38      0        499
2323       板橋区計    4211    23     10  ...         137         16      0        524
2020       豊島区計    4477    26     18  ...         104         39      0        487
2525       練馬区計    4535    24     12  ...         125         10      0        476
2792       足立区計    5230    26     12  ...         151         32      0        631
1350       大田区計    5335    23     12  ...         187         36      0        646
3145      江戸川区計    5431    28     18  ...         154         23      0        691
1710       渋谷区計    5432    30     15  ...         172         66      1        667
1629      世田谷区計    6035    25      9  ...         238         23      0        723
475        新宿区計    6416   107     48  ...         288         93     12        627
5197   多摩地区・島部計   28313   143     61  ...         876        104      0       3660
5196       23区計   85790   535    270  ...        2922        645     15      10046
5201         合計  114497   684    332  ...        3866        792     17      13822

[62 rows x 38 columns]

引用 警視庁 - 発生状況・統計

きちんと総合計で昇順になっている。地区合計を除いて新宿区が最も犯罪件数が多いことがわかる。

次の記事

pandas