日本の情報通信産業の部門別雇用者数の推移を可視化
9224 ワード
令和2年版の情報通信白書の日本の情報通信産業の部門別雇用者数の推移を可視化
令和2年版の情報通信白書が総務省から公開されている。
— 荻原 和樹 / Kazuki OGIWARA (@kaz_ogiwara) November 9, 2020
個人的に面白いのはデータ編、情報通信産業の部門別雇用者数の推移。2000年度から18年度まで、さぞ増えているかと思いきや、9つある分野の中で増えているのは情報サービス業とインターネット付随サービス業のみ。他はすべて減少している。 pic.twitter.com/L6EIxY2M9p
ダウンロード
wget https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/r02/pdf/02data.pdf -O data.pdf
プログラム
import pandas as pd
import pdfplumber
with pdfplumber.open("data.pdf") as pdf:
page = pdf.pages[4]
# 範囲を切り取り
crop = page.within_bbox((50, 100, page.width - 50, page.height - 400))
table_settings = {
"vertical_strategy": "lines",
"horizontal_strategy": "lines",
"intersection_x_tolerance": 15,
}
im = crop.to_image()
# テーブル確認
im.debug_tablefinder(table_settings)
table = crop.extract_table(table_settings)
table[0][0] = "中分類"
table[0][1] = "小分類"
df = pd.DataFrame(table[1:], columns=table[0])
df1 = df[
df["中分類"].str.startswith(("1", "2", "3", "4", "5", "6", "7", "8", "9"))
].drop("小分類", axis=1)
df1["中分類"] = df1["中分類"].str.lstrip("123456789.")
df1.set_index("中分類", inplace=True)
# カンマを除去、整数に変換
df2 = df1.applymap(lambda s: s.replace(",", "")).astype(int)
df2
テーブル確認結果
wget https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/r02/pdf/02data.pdf -O data.pdf
import pandas as pd
import pdfplumber
with pdfplumber.open("data.pdf") as pdf:
page = pdf.pages[4]
# 範囲を切り取り
crop = page.within_bbox((50, 100, page.width - 50, page.height - 400))
table_settings = {
"vertical_strategy": "lines",
"horizontal_strategy": "lines",
"intersection_x_tolerance": 15,
}
im = crop.to_image()
# テーブル確認
im.debug_tablefinder(table_settings)
table = crop.extract_table(table_settings)
table[0][0] = "中分類"
table[0][1] = "小分類"
df = pd.DataFrame(table[1:], columns=table[0])
df1 = df[
df["中分類"].str.startswith(("1", "2", "3", "4", "5", "6", "7", "8", "9"))
].drop("小分類", axis=1)
df1["中分類"] = df1["中分類"].str.lstrip("123456789.")
df1.set_index("中分類", inplace=True)
# カンマを除去、整数に変換
df2 = df1.applymap(lambda s: s.replace(",", "")).astype(int)
df2
テーブル確認結果
可視化
import japanize_matplotlib
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcParams["figure.dpi"] = 200
df2.T.plot(grid=True)
plt.legend(bbox_to_anchor=(1.05, 1), loc="upper left", borderaxespad=0, fontsize=8)
# グラフを保存
plt.savefig("01.png", dpi=200, bbox_inches="tight")
plt.show()
import japanize_matplotlib
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcParams["figure.dpi"] = 200
df2.T.plot(grid=True)
plt.legend(bbox_to_anchor=(1.05, 1), loc="upper left", borderaxespad=0, fontsize=8)
# グラフを保存
plt.savefig("01.png", dpi=200, bbox_inches="tight")
plt.show()
Author And Source
この問題について(日本の情報通信産業の部門別雇用者数の推移を可視化), 我々は、より多くの情報をここで見つけました https://qiita.com/barobaro/items/8884d92b888c96879a42著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .