python の melt() でグラフ化しやすいデータに加工する
python の melt でグラフ化しやすいデータに加工するテクニックをまとめました。
まずは、グラフ化しにくい DataFrame型のデータを作成します。
import pandas as pd # データの作成 df = pd.DataFrame(data=[('a',1,2,3,4,5,6,7),('b',8,9,10,11,12,13,14), ('c',15,16,17,18,19,20,21),('d',22,23,24,25,26,27,28), ('e',29,30,31,32,33,34,35),('f',36,37,38,39,40,41,42), ('g',43,44,45,46,47,48,49)]) df.columns = ['category', 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
こんな感じのデータが出力されます。
これだとカラムの1つか2つくらいしかグラフに出来ず、Sun(日曜)~Sat(土曜)と時系列にならべることができません。
df.plot("category", "Sun")
そこで、melt 関数を使って並べ替えます。
df_m = pd.melt(df, id_vars=['category'], value_vars=['Sun','Mon','Tue','Wed','Thu','Fri','Sat'], var_name = "Day of the week", value_name = "Num")
以降、データが続く・・・
このようにデータを整えると、時系列に並べてグラフ化ができます!
df_m.plot("Day of the week", "Num")
以上になります、最後までお読みいただきありがとうございました。
コードはこちら
参考
公式ドキュ