【実践】売上管理表で棒グラフでグラフ化してみよう
今回の講義では売上管理表と使って棒グラフの作成方法について
学習していきます。
Pandasを使ってデータの集計加工、matplotlibを使ってグラフにして
可視化していきます。
まずは必要なライブラリのインポートです。
import matplotlib.pyplot as plt
import matplotlib.dates as dt
import pandas as pd
%matplotlib inline
そしてkino-codeさんのホームページから
サンプルデータをダウンロードしてread_csvで取り込んだのですが、
エラーになりました。
なので今回はドライブにマウントして、パスを入れて読み込みました。
df = pd.read_csv('/****/****/****/****/sample.csv')
無事読み込むことができたので、データの情報を調べます。
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 224 entries, 0 to 223
Data columns (total 7 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 売上日 224 non-null object
1 社員ID 224 non-null object
2 商品分類 224 non-null object
3 商品名 224 non-null object
4 単価 224 non-null int64
5 数量 224 non-null int64
6 売上金額 224 non-null int64
dtypes: int64(3), object(4)
memory usage: 12.4+ KB
日付を時系列データへ変換
この情報でいくと売上げ日という日時を表すデータが文字列となっています。
0 売上日 224 non-null object
このままでは日付データとして扱えないので
ここでpandas の to_datetime 関数をつかいます。
確認の為にdf.info()でもう一度情報を確認します。
df['売上日'] = pd.to_datetime(df['売上日'])
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 224 entries, 0 to 223
Data columns (total 7 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 売上日 224 non-null datetime64[ns]
1 社員ID 224 non-null object
2 商品分類 224 non-null object
3 商品名 224 non-null object
4 単価 224 non-null int64
5 数量 224 non-null int64
6 売上金額 224 non-null int64
dtypes: datetime64[ns](1), int64(3), object(3)
memory usage: 12.4+ KB
ちゃんと日付データとして変換されました。
0 売上日 224 non-null datetime64[ns]
時系列データを扱う際は、indexに日付データを指定する必要があるそうです。
pandas の set index関数 をつかって日付データをindexに変えます。
df2 = df.set_index('売上日')
df2.head()
これでデータの準備は完了です。
ここからいろいろなデータを抽出してグラフ化します。
月ごとの売り上げ合計データ作成
ます例として月毎の売り上げを算出します。
df2[['売上金額']] 二重[]とすることで
売上金額の列を取り出したデータフレームを作成します。
.resample('M')とすることで月毎に集計できます。
ちなみに引数を変えるといろいろ集計できるみたいです。
最後に合計を計算するsum()を入力します。
sum_df = df2[['売上金額']].resample('M').sum()
sum_df
売上金額
売上日
2020-01-31 742000
2020-02-29 517000
2020-03-31 625000
2020-04-30 511000
2020-05-31 555000
2020-06-30 958000
2020-07-31 883000
2020-08-31 1395000
2020-09-30 800000
2020-10-31 589000
2020-11-30 1252000
2020-12-31 852000
今回もkinocodeさんの動画で勉強させていただきました。
ありがとうございました!
コメント