【第2回】pythonデータ分析100本ノックをやってみた(ノック6-10)

Python 機械学習

Python実戦データ分析100本ノックを、データサイエンス初心者の私と一緒にやっていきませんか?

今回は第2回、ノック6〜ノック10までをやっていきたいと思います。
Python実戦データ分析100本ノックは、pandas の使い方やデータサイエンスを実戦的に学べる書籍なので
ぜひ手に取ってみてください。

Python実践データ分析100本ノック 非常にわかりやすいです。レビューでも実用的と高評価ですね。

ノック6:データ検算をしよう

join_data["price"].sum() == transaction["price"].sum()

ノック5で作成した price の列の合計とノック2で作ったtransaction の合計が同じことを確認しましょう。 True となれば正解です!

 

ノック7:各種統計量を把握しよう

まず、大事なこととして、データに欠損値があるか確認しましょう。

join_data.isnull().sum()

次に、最小値、最大値、標準偏差、データ件数などの一覧表示をしましょう

join_data.describe()

 

ノック8:月別でデータを集計してみよう

まず、データの型を確認しましょう

join_data.dtypes

次にpayment_date の型をdatetime 型に変えましょう。
2行目は、dt.strftime(“%Y%m”) により、年月の部分を切り取って表示します。

join_data["payment_date"] = pd.to_datetime(join_data["payment_date"])
join_data["payment_month"] = join_data["payment_date"].dt.strftime("%Y%m")
join_data[["payment_date", "payment_month"]].head()

groupby を使って、payment_month の列毎に、売り上げの合計を表示します

join_data.groupby("payment_month").sum()["price"]

ノック9:月別、商品別でデータを集計してみよう

まずはさっきと同じようにgroupby を使って、payment_monthとitem_name の列毎に、売り上げの合計と売り上げ数を表示してみます

join_data.groupby(["payment_month","item_name"]).sum()[["price", "quantity"]]

いまいちわかりにくかったので、今度はピボットテーブルで作ってみましょう。
indexは行、columnは列を示します。

pd.pivot_table(join_data, index='item_name', columns='payment_month', values=['price', 'quantity'], aggfunc='sum')

こちらの方がまとまってますが、グラフにしてより可視化したいですよね。次で総仕上げしましょう。

ノック10:商品別の売上推移を可視化してみよう

最後に、ピボットテーブルを作成した後、 matplotlibを用いて、グラフを作ってみましょう!

graph_data = pd.pivot_table(join_data, index='payment_month', columns='item_name', values='price', aggfunc='sum')
graph_data.head()
import matplotlib.pyplot as plt
%matplotlib inline
plt.plot(list(graph_data.index), graph_data["PC-A"], label='PC-A')
plt.plot(list(graph_data.index), graph_data["PC-B"], label='PC-B')
plt.plot(list(graph_data.index), graph_data["PC-C"], label='PC-C')
plt.plot(list(graph_data.index), graph_data["PC-D"], label='PC-D')
plt.plot(list(graph_data.index), graph_data["PC-E"], label='PC-E')
plt.legend()

お疲れ様でした。これで1章は終了です。次回は2章に進んでいきたいと思います。

続きは【第3回】python 実戦データ分析100本ノック第2章前半のまとめでお会いしましょう!

目次に戻りたい方はこちら