
はじめに
問15~問17のコードの説明を初心者や初学者でもわかるような方法でまとめました。
データサイエンス100本ノックのはじめ方は、ブログ記事を参考にしてください。
>>【Google Colabはじめ方】データサイエンス100本ノックーデータサイエンティスト協会
問15 顧客データフレーム(df_customer)から、ステータスコード(status_cd)の先頭がアルファベットのA〜Fで始まり、末尾が数字の1〜9で終わるデータを全項目抽出し、10件だけ表示せよ。
抽出するには、.query()を使用します。
先頭がアルファベットのA〜Fで始まるデータは、^[A-F]になります(詳細は問13をご覧ください)。
末尾が数字の1〜9で終わるデータは、[1-9]$になります(詳細は問14をご覧ください)。
この2つを満たすコードは、Pythonの正規表現である、任意の1文字を表す.と前の文字が0回以上繰り返されるのを表す*を使用します。
よって、^[A-F].*[1-9]$となります。
なお、^[A-F].+[1-9]$でも同じ結果でます。
df_customer.query('status_cd.str.contains("^[A-F].*[1-9]$")',engine='python').head(10)
問16 店舗データフレーム(df_store)から、電話番号(tel_no)が3桁-3桁-4桁のデータを全項目表示せよ。
抽出するには、.query()を使用します。
今回は、(df_store)から、電話番号(tel_no)が3桁–3桁–4桁のデータを全項目表示します。
それには、Pythonの正規表現である、範囲を表す[]、連続する値の範囲を指定するー、繰り返す回数を表す{}を使用します。
( )内には、特定の文字列を含む要素を持つ行を抽出する、str.contains()を使います。
今回のtel_noは、数字で構成されていますが、調べてみると文字列型です。そのため、引用符が必要です。
なお、文字列の中でシングルクォーテーションを使いたい場合はダブルクォーテーションで囲むか、ダブルクォーテーションを使いたい場合はシングルクォーテーションで囲むというのを忘れないでください。
そして、.query()で文字列メソッドを使う場合、第2引数に「engine=’python’」を指定しないとエラーがでます!
df_store.query('tel_no.str.contains("[0-9]{3}-[0-9]{3}-[0-9]{4}")',engine='python')
*上の表は一部だけ表示
問17 顧客データフレーム(df_customer)を生年月日(birth_day)で高齢順にソートし、先頭10件を全項目表示せよ。
(df_customer)を生年月日(birth_day)をソートするには、sort_values()というメソッドを使用します。また、高齢順なので、df_customer.sort_values(‘カラム名’, ascending=True)となります。
なお、ascending=Trueは昇順(例:数字なら増える順)、ascending=Falseは降順(例:数字なら減る順)に並び替えられ、ascending=Trueは省略することもできます。
また、先頭10件を表示は.head(10)です。
df_customer.sort_values('birth_day').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
独学でデータ分析をしている方へ
機械学習やデータサイエンス・データ分析を独学で学ぶには、どうしたらよいかをまとめてみましたので、興味がある方はこちらのブログ記事をご覧ください。
