本当は、先週末の競馬に使って、予想をブログで書こう思ったけど間に合わなかった。

今回見つけたサンプルは、これ。

TensorFlowで電力使用量予測 with Keras - Qiita


これは、実際に少しずつ打ってみて、動作をさせながら


確認していった。


メモ代わりに書く。


最初のライブラリのところにある

import pandas as pd

%matplotlib inline

これは、上の行のpandasだけインポートして下は無視した。


これは、macOSとか、ディスプレイで表を表示するときに使うらしい。


なので、不要と思い、削除。


代わりに

import matplotlib
matplotlib.use('Agg') # -----(1)
import matplotlib.pyplot as plt

とすれば、グラフを画像で保存できる。



オリジナルとは違うけど


一旦、トップのコード

import pandas as pd

import matplotlib
matplotlib.use('Agg') # -----(1)
import matplotlib.pyplot as plt


としておく。


次の段

df_kw = pd.read_csv("juyo-2016.csv",encoding="Shift_JIS",skiprows=1)
df_kw["MW"] = df_kw["実績(万kW)"] * 10

df_kw["DATETIME"] = df_kw.index.map(lambda _: pd.to_datetime(df_kw.DATE[_] + " " + df_kw.TIME[_]))

# 可視化
df_kw["MW"].plot(figsize=(15,4))


1行目の
df_kw = pd.read_csv("juyo-2016.csv",encoding="Shift_JIS",skiprows=1)

これは、CSVを取り込みしている。


最初の行が取り込み。


中に書いている引数は、文字コードと何行目から読込開始か。

encodingが文字コード、skiprowsが行飛ばし。

(ここからは、中身がどう変化しているか?を分かるように書いていく。
でも、ファイルが2018年版になってます。)


df_kwの中身はこう↓

  DATE TIME 実績(万kW)
0 2018/4/1 0:00 539
1 2018/4/1 1:00 557
2 2018/4/1 2:00 594
3 2018/4/1 3:00 631
4 2018/4/1 4:00 624
5 2018/4/1 5:00 591
6 2018/4/1 6:00 566
7 2018/4/1 7:00 568


注意! サンプルで最初の行は、飛ばすになっているけど、決してカラム名をスキップしているわけではない。


実際にダウンロードしてファイルの1行目を確認すると分かるけど、1行目がタイトルになってるので、スキップしている。



カラム名は必要です。


次のところの


df_kw["MW"] = df_kw["実績(万kW)"] * 10


電気量の単位を1つ下げて計算するようしている。切り捨てとか切り上げとかあるときに、必要なところまで


捨てられないようの対処と思ったほうがいい。


中にある"MW"とか"実績(万kW)"。これは、カラム名。


CSVの最初のカラム名で操作している。

この時点で、df_kwの中身は



次の行
df_kw["DATETIME"] = df_kw.index.map(lambda _: pd.to_datetime(df_kw.DATE[_] + " " + df_kw.TIME[_]))

これはね、Pythonに日時時間だよって教えてる。

さっきの段階では、"2018/4/1"という文字です。日付じゃありません。文字です。

これを日付として認識してもらわないといけません。

あと追加して時間も足してますので、日時にします。


この段階で、df_kwの中身はこう↓




df_kw["MW"].plot(figsize=(15,4))

plotへデータを保存。無くてもよい。


ここでデータを見ようと思うなら、これを途中に入れる。

plt.figure()

df_kw["MW"].plot(figsize=(15,4))

plt.savefig('data/dst/pandas_iris_line.png')
plt.close('all')


一旦ここまで


また次回