
- はじめに
- 問21 レシート明細データフレーム(df_receipt)に対し、件数をカウントせよ。
- 問22 レシート明細データフレーム(df_receipt)の顧客ID(customer_id)に対し、ユニーク件数をカウントせよ。
- 問23 レシート明細データフレーム(df_receipt)に対し、店舗コード(store_cd)ごとに売上金額(amount)と売上数量(quantity)を合計せよ。
- 問24 レシート明細データフレーム(df_receipt)に対し、顧客ID(customer_id)ごとに最も新しい売上日(sales_ymd)を求め、10件表示せよ。
- 問25 レシート明細データフレーム(df_receipt)に対し、顧客ID(customer_id)ごとに最も古い売上日(sales_ymd)を求め、10件表示せよ。
- Pythonのコードやライブラリーについて知りたい場合
- 独学でデータ分析をしている方へ
はじめに
問21~問25のコードの説明を初心者や初学者でもわかるような方法でまとめました。
データサイエンス100本ノックのはじめ方は、以下のブログ記事を参考にしてください。
>>【Google Colabはじめ方】データサイエンス100本ノックーデータサイエンティスト協会
問21 レシート明細データフレーム(df_receipt)に対し、件数をカウントせよ。
件数のカウントには、len()を使用します。
問22 レシート明細データフレーム(df_receipt)の顧客ID(customer_id)に対し、ユニーク件数をカウントせよ。
件数のカウントには、len()を使用します。
しかし、今回の件数は「ユニーク件数」です。つまり、重複を除いた件数を求める問題となっています。
ユニーク件数を求めるには、len(df_receipt[‘カラム名’].unique())というコードになります。
問23 レシート明細データフレーム(df_receipt)に対し、店舗コード(store_cd)ごとに売上金額(amount)と売上数量(quantity)を合計せよ。
「(df_receipt)に対し、店舗コード(store_cd)ごとに」表示する必要があるので、groupby()を使用します。groupby()は、特定の列をグルーピングしてくれます。
そのグルーピングは、店舗コード(store_cd)ごとに売上金額(amount)と売上数量(quantity)を合計したものである必要があるので、agg()を使用します。
売上金額(amount)と売上数量(quantity)の合計なので、sumを使用し、.agg({‘amount’:’sum’,’quantity’:’sum’})となります。
また、インデックスが消えないように、最後に.reset_index()を使用します。
df_receipt.groupby('store_cd').agg({'amount':'sum','quantity':'sum'}).reset_index()
問24 レシート明細データフレーム(df_receipt)に対し、顧客ID(customer_id)ごとに最も新しい売上日(sales_ymd)を求め、10件表示せよ。
「(df_receipt)に対し、顧客ID(customer_id)ごとに」表示する必要があるので、groupby()を使用します。
最も新しい売上日(sales_ymd)を求める必要があるので、max()を使用します。
max()は、最大値(今回は最も新しい売上日)を求めることができます。
また、インデックスが消えないように、最後に.reset_index()を使用し、これを10件
表示なので、.head(10)と打ちます。
df_receipt.groupby('customer_id').sales_ymd.max().reset_index().head(10)
問25 レシート明細データフレーム(df_receipt)に対し、顧客ID(customer_id)ごとに最も古い売上日(sales_ymd)を求め、10件表示せよ。
問24とほぼ同じ処理で、違いは、最も古い売上日(sales_ymd)を求めることです。これには、min()を使用します。
min()は、最小値(今回は最も古い売上日)を求めることができます。
df_receipt.groupby('customer_id').sales_ymd.min().reset_index().head(10)
Pythonのコードやライブラリーについて知りたい場合
Pythonはデータ分析でよく使われている言語です。
この機会にPythonのコードの打ち方・ライブラリーについてもっと知りたいと思った方は、以下のブログ記事をご覧ください。
データ分析入門・データサイエンス初心者・初学者向けにデータ分析でよく使うPythonをまとめました。
>>【データ分析初心者】Python構文~if文、format記法とf文字列~
>>【データ分析初心者】Python構文~for文、range関数、zip関数、enumerate関数~
>>【データ分析初心者】Python構文~無名関数lambda式、内包表記、map関数~
>>【データ分析初心者】Pandas~loc[]、iloc[]、スライス、drop()、isin()~
>>【データ分析初心者】Matplotlib、Seabornーscatter、hist、countplot 、barplot
独学でデータ分析をしている方へ
機械学習やデータサイエンス・データ分析を独学で学ぶには、どうしたらよいかをまとめてみましたので、興味がある方はこちらのブログ記事をご覧ください。
