LoginSignup
0
0

More than 3 years have passed since last update.

【Python】データサイエンス100本ノック(構造化データ加工編) 005 解説

Last updated at Posted at 2020-07-18
  • データサイエンス100本ノックをやりきる会を作りました🎉
  • こちらのSlack招待URLからご参加ください!!
  • ぜひ一緒に励まし合いながら、データサイエンス100本ノックをやり切りたいと思っています!

Youtube

動画解説もしています。

問題

P-005: レシート明細のデータフレーム(df_receipt)から売上日(sales_ymd)、顧客ID(customer_id)、商品コード(product_cd)、売上金額(amount)の順に列を指定し、以下の条件を満たすデータを抽出せよ。
- 顧客ID(customer_id)が"CS018205000001"
- 売上金額(amount)が1,000以上

解答

コード
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']] \
.query('customer_id == "CS018205000001" & amount >= 1000')

出力

sales_ymd customer_id product_cd amount
36 20180911 CS018205000001 P071401012 2200
68117 20190226 CS018205000001 P071401020 2200
72254 20180911 CS018205000001 P071401005 1100

解説

・PandasのDataFrame/Seriesにて、列を指定しつつ、指定した行のうち、条件に当てはまる行を確認する方法です。
・列情報を絞り、かつ、行を指定して、かつ、条件に当てはまる情報を確認したい時に使用します。
'<データ名>[['<列名A>','<列名B>','<列名C>']].guery('<列名A> == "<行情報A>" & <列名B> >= 1000')'で、指定した列(列名A,列名B,列名C)のうち、列名A が指定した 行情報A に該当する行で、かつ、列名B が1000以上の行を表示します。

※Pythonの比較演算子はこちらを参照ください

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0