pythonででんき家計簿データのcsvをpandasでグラフ表示する

 前回、一生懸命でんき家計簿のデータをスクレイピングしてみたが、あとになってでんき家計簿のデータはcsvでダウンロード出来ることを知り、今度はそのデータをmatplotlibでグラフ表示しようと試行錯誤したところ、1年前の同月のデータを並べて表示するのはX軸をずらしたりと意外と面倒であることがわかった。
 そのため調べてみたらpandasのplotでグラフ表示するのが一番お手軽そうだったのでやってみた。ちなみにグラフ表示するにはJupyter Notebookが必要。

import pandas as pd
import japanize_matplotlib  # macで日本語表示する場合に必要 pip install japanize_matplotlib
df = pd.read_csv('ELECT_USAGE_20201021211215.csv', encoding="SHIFT-JIS")
watt = df[['年月','使用量総計']]
# 年を削除 (ex. 2019/11 -> 11)
watt = watt.replace('.*/(.*)', r'\1', regex=True)
watt = watt.rename(columns={'年月': '月'})
last_year = watt.iloc[0:12]  # 前の1年分
this_year = watt.iloc[12:]   # 現在までの1年分
# 上記の1年分ずつをマージ
merged_data = pd.merge(last_year, this_year, how='left', on="月", suffixes=('(1年前)','(直近)'))
print(merged_data)
merged_data.plot.bar(x='月', y=['使用量総計(1年前)','使用量総計(直近)'], title='1年前との電力の比較')

実行結果

月 使用量総計(1年前) 使用量総計(直近)
0 11 277 280
1 12 306 261
2 01 426 406
3 02 412 255
4 03 304 244
5 04 255 277
6 05 259 257
7 06 224 236
8 07 240 277
9 08 339 344
10 09 415 466
11 10 301 345

スクリーンショット 2020-10-21 午後11.03.08

ここでのエッセンス

pandasの使い方を学ぶ
- pandasのdataframeで2年分のデータを1年分ずつにマージする。
- pandasのdataframe中のデータを正規表現で置換する。
- pandasの列のインデックス名を変更する。





この記事が気に入ったらサポートをしてみませんか?