データの整然化の例

e-Statの人口動態調査の確定数→死亡→年次→2020年とたどって,5-4「死亡月別にみた年次別死亡数及び死亡率(人口千対)」をCSV形式でダウンロードし,Excelで開く:

mc040000.csv

これは整然データになっていない。これを次のような整然データに直したい。ただし,5個の「不詳」は無視する。

死亡数
19471109940
19472115405
19473116996

次のようにすればよい:

import pandas as pd

df = pd.read_csv('mc040000.csv', encoding='cp932', skiprows=5, nrows=28)
df.columns = ['年次', '年', '総数'] + list(range(1, 13)) + ['不詳']
df = df.melt(id_vars=['年'], value_vars=range(1, 13),
             var_name='月', value_name='死亡数')
df['月'] = df['月'].astype(int)
df = df.sort_values(by=['年', '月'])

これで df は次のようになる:

        年   月       死亡数
0    1947   1  109940.0
28   1947   2  115405.0
56   1947   3  116996.0
84   1947   4   99403.0
112  1947   5   92456.0
..    ...  ..       ...
223  2020   8  111141.0
251  2020   9  106345.0
279  2020  10  116951.0
307  2020  11  117607.0
335  2020  12  132148.0

Last modified: