5/5だったので最新はどうなのか気になったので計算してみた
import pandas as pd import requests import pathlib def fetch_file(url, dir="."): p = pathlib.Path(dir, pathlib.PurePath(url).name) p.parent.mkdir(parents=True, exist_ok=True) r = requests.get(url) r.raise_for_status() with p.open(mode="wb") as fw: fw.write(r.content) return p # 人口 p1 = fetch_file("https://www.stat.go.jp/data/nihon/zuhyou/n210200200.xlsx") df1 = pd.read_excel( p1, header=None, skiprows=9, skipfooter=3, index_col=0, usecols=[0, 6] ) df1.set_axis(["総人口"], axis=1, inplace=True) df1.index.name = "都道府県" # NHK死亡者数 p2 = fetch_file( "https://www3.nhk.or.jp/n-data/opendata/coronavirus/nhk_news_covid19_prefectures_daily_data.csv" ) df2 = pd.read_csv(p2, parse_dates=[0]) pv = df2.pivot(index="日付", columns="都道府県名", values="各地の死者数_累計") # 前週との差分 pv_diff = pv.diff(7) pv_diff # 最新 se = pv_diff.iloc[-1] # se = pv_diff.loc[pd.Timestamp("2021-05-05")] se.index = se.index.str.rstrip("府県") se.rename(index={"東京都": "東京"}, inplace=True) se.name = "死亡者数" df3 = df1.join(se) df3 # 100万人あたり df3["死亡率"] = df3["死亡者数"] / (df3["総人口"] / 1000) df3["死亡率"].sort_values(ascending=False)
何も考えず「rstrip("都道府県")」にすると「北海道」は「北海」、「京都府」は「京」だけになるという知見を得られた(w