Python 無料で独習 Matplotlib & Seaborn 入門講座 05_01

Python 無料で独習 Matplotlib & Seaborn 入門講座 05_01

【実践】売上管理表で棒グラフでグラフ化してみよう

今回の講義では売上管理表と使って棒グラフの作成方法について
学習していきます。
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
このままでは日付データとして扱えないので
ここでpandasto_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に日付データを指定する必要があるそうです。
pandasset index関数 をつかって日付データをindexに変えます。

df2 = df.set_index('売上日')
df2.head()


これでデータの準備は完了です。
ここからいろいろなデータを抽出してグラフ化します。

月ごとの売り上げ合計データ作成

ます例として月毎の売り上げを算出します。
df2[['売上金額']] 二重[]とすることで
売上金額の列を取り出したデータフレームを作成します。
.resample('M')とすることで月毎に集計できます。
ちなみに引数を変えるといろいろ集計できるみたいです。
resampleの引数一覧
最後に合計を計算する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

プログラミン独習カテゴリの最新記事