Pandasで愛知県の人口が多い市区町村順に並び替える|Python

2 アクセス

はじめに

この記事はPandasでデータフレームをcsvファイルに書き込む|Pythonの続き
今回はソートを行う
具体的には、愛知県の2024年9月1日時点の推計人口を市区町村別で多い順に並べる

ソートを行うメソッドsort_values()

Pandas.Dataframeクラスにはsort_valuesというメソッドがあり、このメソッドでデータフレーム中の値のソートができる
第一引数にはソートの基準となる列のラベルを指定する
デフォルトでは昇順なので、降順にするにはascending=Falseとする
ソート後、行ラベルを新たに0からつけるにはignore_index=Trueとする

サンプルコード

import pandas as pd

df = pd.read_csv('population.csv', encoding='shift_jis')

df = df[(df["国籍区分"]=="a)日外") & (df["性別"]=="a)男女")]

df = df[["郡市", "区町村", "20240901"]]
print(df.sort_values("20240901", ascending=False, ignore_index=True))

今回は、日本人と外国人、男性と女性を区別せずに市区町村別の総人口を調べたいので5行目で行を抽出している
また、7行目では必要な列だけを表示するために列を抽出している

実行結果

      郡市   区町村   20240901
0      ―     ―  7465512.0
1   名古屋市     ―  2330385.0
2    豊田市     ―   414698.0
3    岡崎市     ―   381379.0
4    一宮市     ―   372962.0
..   ...   ...        ...
66   知多郡  南知多町    15014.0
67   海部郡   飛島村     4453.0
68  北設楽郡   設楽町     3877.0
69  北設楽郡   東栄町     2602.0
70  北設楽郡   豊根村      896.0

[71 rows x 3 columns]

0行目に愛知県全体の人口データが残ってしまったが、昇順に並び替えられた
2024年9月1日時点の人口TOP3は名古屋市、豊田市、岡崎市という結果が得られた

なお、このデータには名古屋市内の区のデータも混じっていることに注意が必要である
市区町村ではなく、市町村で並べたいときには、さらに抽出が必要となる

続きの記事→pandas.DataFrameに列を追加/lambda/三項演算子|Python

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です