アラフォーから色々始めるリケジョの独り言

アラフォーになって色々始めてみました手探りでがんばります。

【Python】100本ノックやってます。p‐66~p-69

P-066: 商品データ(df_product)の各商品について、利益率が30%となる新たな単価を求めよ。今回は、1円未満を丸めること(四捨五入または偶数への丸めで良い)。そして結果を10件表示させ、利益率がおよそ30%付近であることを確認せよ。ただし、単価(unit_price)と原価(unit_cost)には欠損が生じていることに注意せよ。

偶数への丸めはround()。

単品だったらmath、複数だったらnumpyを使う。

私lambda使っちゃったけど、解答の方が楽。わざわざ使う必要なかったな。

 

P-067: 商品データ(df_product)の各商品について、利益率が30%となる新たな単価を求めよ。今回は、1円未満を切り上げること。そして結果を10件表示させ、利益率がおよそ30%付近であることを確認せよ。ただし、単価(unit_price)と原価(unit_cost)には欠損が生じていることに注意せよ。

切り上げはceil()

 

P-068: 商品データ(df_product)の各商品について、消費税率10%の税込み金額を求めよ。1円未満の端数は切り捨てとし、結果を10件表示せよ。ただし、単価(unit_price)には欠損が生じていることに注意せよ。

切り捨てはfloor()

 

P-069: レシート明細データ(df_receipt)と商品データ(df_product)を結合し、顧客毎に全商品の売上金額合計と、カテゴリ大区分コード(category_major_cd)が"07"(瓶詰缶詰)の売上金額合計を計算の上、両者の比率を求めよ。抽出対象はカテゴリ大区分コード"07"(瓶詰缶詰)の売上実績がある顧客のみとし、結果を10件表示せよ。

道筋を立てるのに四苦八苦・・・

 

まず2つをマージしてから色々いじろうかと思ってたんだけど、なんかうまくいかなくて、、、

なので一回頭をリセットして「①全顧客ごとの売上金額合計リスト」を作って。

そのあと別に「カテゴリ7を含むproduct_cdのリスト」をレシートデータにぶつけて「カテゴリ7を買った顧客リスト」を作って。

その「カテゴリ7を買った顧客リスト」の「②顧客ごとのカテゴリ7売上金額合計リスト」を作って。

 

②←①を左結合。(③)

 

③の2つの売上金額の割合を計算。

 

とても泥臭い・・・

でも解答例1と似てるかな?

私1行にできてないから泥臭く見えるけど、考え方は同じっぽい。

商品データのカテゴリ7の絞り込みをマージの時に一緒にやってるんだな。

df_product.query('category_major_cd == "07"')

でもaggって今までずっと使ってなかったから見といたほうがよさそう。(今回は別にsumでいける)

vector-ium.com

 

有休的には余裕があるけど、5/1-2は働きます。

再来週推し事で平日に休みまくるから・・・

でも周りが休みなのでやることなさそうなので、引き続き100本ノックできるかな。

寝なければ。。。