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]
きちんと総合計で昇順になっている。地区合計を除いて新宿区が最も犯罪件数が多いことがわかる。