前回に引き続きSQLとPythonでデータサイエンス100本ノック進めていきます。
S-004: レシート明細のテーブル(receipt)から売上日(sales_ymd)、顧客ID(customer_id)、商品コード(product_cd)、売上金額(amount)の順に列を指定し、以下の条件を満たすデータを抽出せよ。
顧客ID(customer_id)が"CS018205000001"
SQLだと以下のようになります。
select sales_ymd, customer_id, product_cd,amount from receipt where customer_id = 'CS018205000001'
Pythonだと以下のようになります。
df_receipt[['sales_ymd','customer_id','product_cd','amount']]\ .query('customer_id=="CS018205000001"')
query関数のドキュメントはこちらになります。
S-005: レシート明細のテーブル(receipt)から売上日(sales_ymd)、顧客ID(customer_id)、商品コード(product_cd)、売上金額(amount)の順に列を指定し、以下の条件を満たすデータを抽出せよ。
顧客ID(customer_id)が"CS018205000001" 売上金額(amount)が1,000以上
SQLだと以下のようになります。
select sales_ymd, customer_id, product_cd, amount from receipt where customer_id = 'CS018205000001' and amount >= 1000
Pythonだと以下のようになります。
df_receipt[['sales_ymd','customer_id','product_cd','amount']]\ .query('customer_id=="CS018205000001" & amount >= 1000')
SQLのWhereで書く内容はquery関数内にまとめる感じになるような印象です。