
- はじめに
- 問63 商品データフレーム(df_product)の単価(unit_price)と原価(unit_cost)から、各商品の利益額を算出せよ。結果は10件表示させれば良い。
- 問64 商品データフレーム(df_product)の単価(unit_price)と原価(unit_cost)から、各商品の利益率の全体平均を算出せよ。 ただし、単価と原価にはNULLが存在することに注意せよ。
- 問65 商品データフレーム(df_product)の各商品について、利益率が30%となる新たな単価を求めよ。ただし、1円未満は切り捨てること。そして結果を10件表示させ、利益率がおよそ30%付近であることを確認せよ。ただし、単価(unit_price)と原価(unit_cost)にはNULLが存在することに注意せよ。
- 問66 商品データフレーム(df_product)の各商品について、利益率が30%となる新たな単価を求めよ。今回は、1円未満を丸めること(四捨五入または偶数への丸めで良い)。そして結果を10件表示させ、利益率がおよそ30%付近であることを確認せよ。ただし、単価(unit_price)と原価(unit_cost)にはNULLが存在することに注意せよ。
- 問67 商品データフレーム(df_product)の各商品について、利益率が30%となる新たな単価を求めよ。今回は、1円未満を切り上げること。そして結果を10件表示させ、利益率がおよそ30%付近であることを確認せよ。ただし、単価(unit_price)と原価(unit_cost)にはNULLが存在することに注意せよ。
- 問68 商品データフレーム(df_product)の各商品について、消費税率10%の税込み金額を求めよ。 1円未満の端数は切り捨てとし、結果は10件表示すれば良い。ただし、単価(unit_price)にはNULLが存在することに注意せよ。
- Pythonのコードやライブラリーについて知りたい場合
- 独学でデータ分析をしている方へ
はじめに
問63~問68のコードの説明を初心者や初学者でもわかるような方法でまとめました。
データサイエンス100本ノックのはじめ方は、以下のブログ記事を参考にしてください。
>>【Google Colabはじめ方】データサイエンス100本ノックーデータサイエンティスト協会
問63 商品データフレーム(df_product)の単価(unit_price)と原価(unit_cost)から、各商品の利益額を算出せよ。結果は10件表示させれば良い。
(df_product)に新しくunit_profitのカラムを作成し、そちらには、各商品の利益額を算出したものを入力します。
各商品の利益額は、単価(unit_price)ー 原価(unit_cost)で計算できます。
df_product['unit_profit'] = df_product['unit_price'] - df_product['unit_cost']
問64 商品データフレーム(df_product)の単価(unit_price)と原価(unit_cost)から、各商品の利益率の全体平均を算出せよ。 ただし、単価と原価にはNULLが存在することに注意せよ。
(df_product)に新しくunit_profit_rateのカラムを作成し、そちらには、各商品の利益率を算出したものを入力します。
各商品の利益率は、(単価(unit_price)ー原価(unit_cost))/単価(unit_price)*100で計算できます。
df_product['unit_profit_rate'] = (df_product['unit_price'] - df_product['unit_cost']) / df_product['unit_price']*100
各商品の利益率の全体平均を求めるには、mean()を使用します。
なお、「単価と原価にはNULLが存在することに注意せよ」とありますが、mean()の引数でskipna=Trueを選択すると値がないデータを飛ばして計算してくれますが、mean()はデフォルトでTrueに設定されているので、特段書く必要はありません。
df_product['unit_profit_rate'].mean()
問65 商品データフレーム(df_product)の各商品について、利益率が30%となる新たな単価を求めよ。ただし、1円未満は切り捨てること。そして結果を10件表示させ、利益率がおよそ30%付近であることを確認せよ。ただし、単価(unit_price)と原価(unit_cost)にはNULLが存在することに注意せよ。
利益率が30%ということは、「単価が原価の70%」である必要があります。
例えば、利益率30%というものは、原価70円のものを単価100円で売った場合です。
つまり、単価100円×0.7=原価70円の関係です。
仮に単価A、原価Bとし、これを式にすると、A×0.7=Bです。
式変形すると、A=B/0.7になります。
すなわち、利益率30%は、「単価が原価の70%」を指します。
そして、「1円未満は切り捨てる」必要があるので、np.floor()を使用します。
なお、問43、問56で使用したmath.floor()も小数点の切り捨てができますが、データにNaNが存在するとエラーになってしまいます。
df_product['new_price'] = np.floor(df_product['unit_cost']/0.7)
そして、利益率がおよそ30%付近であることを確認するために、問64で行ったようにnew_priceに対して、利益率を表示します。
df_product['new_profit_rate'] = (df_product['new_price'] - df_product['unit_cost']) / df_product['new_price']*100
問66 商品データフレーム(df_product)の各商品について、利益率が30%となる新たな単価を求めよ。今回は、1円未満を丸めること(四捨五入または偶数への丸めで良い)。そして結果を10件表示させ、利益率がおよそ30%付近であることを確認せよ。ただし、単価(unit_price)と原価(unit_cost)にはNULLが存在することに注意せよ。
問65と基本的な処理は同じです。
違う点は、「1円未満を丸めること(四捨五入または偶数への丸めで良い)」です。
それには、np.round()を使用します。
df_product['new_price'] = np.round(df_product['unit_cost']/0.7)
df_product['new_profit_rate'] = (df_product['new_price'] - df_product['unit_cost']) / df_product['new_price']*100
df_product.head(10)
問67 商品データフレーム(df_product)の各商品について、利益率が30%となる新たな単価を求めよ。今回は、1円未満を切り上げること。そして結果を10件表示させ、利益率がおよそ30%付近であることを確認せよ。ただし、単価(unit_price)と原価(unit_cost)にはNULLが存在することに注意せよ。
こちらも問65、問66と基本的な処理は同じです。
違う点は、「1円未満を切り上げること」です。
それには、np.ceil()を使用します。
df_product['new_price'] = np.ceil(df_product['unit_cost']/0.7)
df_product['new_profit_rate'] = (df_product['new_price'] - df_product['unit_cost']) / df_product['new_price']*100
df_product.head(10)
問68 商品データフレーム(df_product)の各商品について、消費税率10%の税込み金額を求めよ。 1円未満の端数は切り捨てとし、結果は10件表示すれば良い。ただし、単価(unit_price)にはNULLが存在することに注意せよ。
消費税率10%の税込み金額は、単価(unit_price)×1.1となります。
そして、「1円未満の端数は切り捨て」るので、np.floor()を使用します。
df_product['price_tax'] = np.floor(df_product['unit_price']/1.1)
df_product.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
独学でデータ分析をしている方へ
機械学習やデータサイエンス・データ分析を独学で学ぶには、どうしたらよいかをまとめてみましたので、興味がある方はこちらのブログ記事をご覧ください。
