Pythonにて複数のオープンデータをダウンロードしグラフで表示してみよう。

Pythonにて複数のオープンデータをダウンロードしグラフで表示してみよう。

2つの列データの差を新しい列として作る

今回は「e-Stat:政府統計の総合窓口」からオープンデータを取得していきます。

キーワードに「人口推計」と入力します。


4つの中から「人口推計」を選択します。

データベースを選択します。

この中から「平成30年10月1日現在人口推計」を選択します。

005の都道府県、男女別人口、総人口、日本人人口の「DB」を選択します。

右上のダウンロードをクリックします。

画面下のダウンロードをクリックしてダウンロードします。

そうするとこのようなCSVファイルがダウンロードできました。

2つの列データの差を新しい列として作る

試しに「平成30年」から「平成29年」を引いて、新しく人口増減を作って見たいと思います。
import pandas as pd
import matplotlib.pyplot as plt
import japanize_matplotlib

df = pd.read_csv(“FEH_00200524_220213102329.csv”,index_col=”全国・都道府県”, encoding=”shift_jis”)

df = df.drop(“全国”, axis=0)
df[“平成29年”] = pd.to_numeric(df[“平成29年”].str.replace(“,”, “”))
df[“平成30年”] = pd.to_numeric(df[“平成30年”].str.replace(“,”, “”))
df[“人口増減”] = df[“平成30年”] – df[“平成29年”]
df = df.sort_values(“人口増減”, ascending=False)
df[“人口増減”].plot.bar(figsize=(11,7))
plt.show()

解説

import pandas as pd表データーを読み込むpandasライブラリをimportします。省略してpdとします。
import matplotlib.pyplot as pltグラフを表示させるmatplotlibをimportします。matplotlib.pyplotとするとpltという省略名が使えます。
import japanize_matplotlib日本語で表示させるため、また文字化けしないようjapanize_matplotlibをimportします。
df = pd.read_csv(“FEH_00200524_220213102329.csv”,index_col=”全国・都道府県”, encoding=”shift_jis”)read_csvでファイルを読み込みます。index_colでインデックスを全国・都道府県の列に指定し、グラフに県別を表示させます。encoding=”shift_jis”でUTF-8形式での日本語対応にします。
df = df.drop(“全国”, axis=0)「全国」の行を削除してます。
df[“平成29年”] = pd.to_numeric(df[“平成29年”].str.replace(“,”, “”))エラーで「no numeric data to plot」がでないように「カンマを空の文字に変換」してグラフ用データにしています。
df[“平成29年”] = pd.to_numeric(df[“平成30年”].str.replace(“,”, “”))同上
df[“人口増減”] = df[“平成30年”] – df[“平成29年”]2つの列の差を新しい列として作る。
df = df.sort_values(“人口増減”, ascending=False)多い順に並べ替えています。
df[“人口増減”].plot.bar(figsize=(11,7))棒グラフで画面サイズを幅11インチ、高さ7インチにしています。
plt.show()表示します。

最大値が100になっていますね。これはmatlotlibはグラフを表示するときに最大値と最小値を自動的にスケールを調整してくれるのでこのようになります。

そこで今度はplt.ylim()を使ってグラフの縦軸の最小値と最大値のスケールを指定することもできます。

plt.ylim(-200,200)最小値を200、最大値を200に設定

*尚、ここではバージョン「Python 3.10.1」を使用しています。

この本から引用、参考に学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが2,000円程ならコスパよく、買っておいてよかったと満足してます。


わからないことはプロフェッショナルから学ぶのが一番

キャリアアップに必要なスキルを取得しよう。

オンラインで受講ができるスクールですので、全国どこからでも。