
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章前半のまとめでお会いしましょう!
目次に戻りたい方はこちら
コメント