
- はじめに
- 問5 レシート明細のデータフレーム(df_receipt)から売上日(sales_ymd)、顧客ID(customer_id)、商品コード(product_cd)、売上金額(amount)の順に列を指定し、以下の条件を満たすデータを抽出せよ。 ・顧客ID(customer_id)が”CS018205000001″ ・売上金額(amount)が1,000以上
- 問6 レシート明細データフレーム「df_receipt」から売上日(sales_ymd)、顧客ID(customer_id)、商品コード(product_cd)、売上数量(quantity)、売上金額(amount)の順に列を指定し、以下の条件を満たすデータを抽出せよ。 ・顧客ID(customer_id)が”CS018205000001″ ・売上金額(amount)が1,000以上または売上数量(quantity)が5以上
- 問7 レシート明細のデータフレーム(df_receipt)から売上日(sales_ymd)、顧客ID(customer_id)、商品コード(product_cd)、売上金額(amount)の順に列を指定し、以下の条件を満たすデータを抽出せよ。 ・顧客ID(customer_id)が”CS018205000001″ ・売上金額(amount)が1,000以上2,000以下
- 問8 レシート明細のデータフレーム(df_receipt)から売上日(sales_ymd)、顧客ID(customer_id)、商品コード(product_cd)、売上金額(amount)の順に列を指定し、以下の条件を満たすデータを抽出せよ。 ・顧客ID(customer_id)が”CS018205000001″ ・商品コード(product_cd)が”P071401019″以外
- Pythonのコードやライブラリーについて知りたい
- 独学でデータ分析をしている方へ
はじめに
問5~問8のコードの説明を初心者や初学者でもわかるような方法でまとめました。
データサイエンス100本ノックのはじめ方は、以下のブログ記事を参考にしてください。
>>【Google Colabはじめ方】データサイエンス100本ノックーデータサイエンティスト協会
問5 レシート明細のデータフレーム(df_receipt)から売上日(sales_ymd)、顧客ID(customer_id)、商品コード(product_cd)、売上金額(amount)の順に列を指定し、以下の条件を満たすデータを抽出せよ。 ・顧客ID(customer_id)が”CS018205000001″ ・売上金額(amount)が1,000以上
「(df_receipt)から売上日(sales_ymd)、顧客ID(customer_id)、商品コード(product_cd)、売上金額(amount)の順に列を指定」する方法は、問2と同じで、df_receipt [[“①”, “②”, ・・・]]です。
また、「顧客ID(customer_id)が”CS018205000001″」の条件を満たすデータの抽出する方法は、問4と同じで、.query(‘customer_id == “CS018205000001”)ですね。
文字列内の文字列に引用符をつけることを忘れないように注意してください。
そして、今回は「売上金額(amount)が1,000以上」も満たさなければいけません。
2つの条件を両方満たすことを示す&を使用し、& amount >= 1000とします。
df_receipt[['sales_ymd','customer_id','product_cd','amount']].query('customer_id == "CS018205000001" & amount >= 1000')
問6 レシート明細データフレーム「df_receipt」から売上日(sales_ymd)、顧客ID(customer_id)、商品コード(product_cd)、売上数量(quantity)、売上金額(amount)の順に列を指定し、以下の条件を満たすデータを抽出せよ。 ・顧客ID(customer_id)が”CS018205000001″ ・売上金額(amount)が1,000以上または売上数量(quantity)が5以上
「(df_receipt)から売上日(sales_ymd)、顧客ID(customer_id)、商品コード(product_cd)、売上数量(quantity)、売上金額(amount)の順に列を指定」する方法は、 df_receipt [[“①”, “②”, ・・・]]です。
また、「顧客ID(customer_id)が”CS018205000001″」の条件を満たすデータの抽出する方法は、.query(‘customer_id == “CS018205000001”ですね。
そして、今回は「売上金額(amount)が1,000以上」”又は”「売上数量(quantity)が5以上」も満たさなければいけません。
”又は”の条件を示す|を使用し、& amount >= 1000|quantity >= 5とします。
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'quantity', 'amount']].query('customer_id == "CS018205000001" & (amount >= 1000 | quantity >= 5)')
問7 レシート明細のデータフレーム(df_receipt)から売上日(sales_ymd)、顧客ID(customer_id)、商品コード(product_cd)、売上金額(amount)の順に列を指定し、以下の条件を満たすデータを抽出せよ。 ・顧客ID(customer_id)が”CS018205000001″ ・売上金額(amount)が1,000以上2,000以下
「(df_receipt)から売上日(sales_ymd)、顧客ID(customer_id)、商品コード(product_cd)、売上金額(amount)の順に列を指定」する方法は、df_receipt[[“①”, “②”, ・・・]]ですね。
また、「顧客ID(customer_id)が”CS018205000001″」の条件を満たすデータの抽出する方法は、.query(‘customer_id == “CS018205000001”ですね。
そして、今回は「売上金額(amount)が1,000以上2,000以下」を満たさなければいけませんので、& 1000 <= amount <= 2000とします。
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'quantity', 'amount']].query('customer_id == "CS018205000001" & 1000 <= amount <= 2000')
問8 レシート明細のデータフレーム(df_receipt)から売上日(sales_ymd)、顧客ID(customer_id)、商品コード(product_cd)、売上金額(amount)の順に列を指定し、以下の条件を満たすデータを抽出せよ。 ・顧客ID(customer_id)が”CS018205000001″ ・商品コード(product_cd)が”P071401019″以外
「(df_receipt)から売上日(sales_ymd)、顧客ID(customer_id)、商品コード(product_cd)、売上金額(amount)の順に列を指定」する方法は、 df_receipt[[“①”, “②”, ・・・]]ですね。
また、「顧客ID(customer_id)が”CS018205000001″」の条件を満たすデータの抽出する方法は、.query(‘customer_id == “CS018205000001″‘ですね。
そして、今回は「(product_cd)が”P071401019″以外」です。
不一致は、!=を使用しますので、& product_cd != “P071401019”とします。
なお、not product_cd == “P071401019”としても、同じ結果がでます。
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
独学でデータ分析をしている方へ
機械学習やデータサイエンス・データ分析を独学で学ぶには、どうしたらよいかをまとめてみましたので、興味がある方はこちらのブログ記事をご覧ください。
