【Python初心者でも分かる】データサイエンティスト協会の100本ノックを解説|変数の一部を使ってデータを抽出する

スポンサーリンク
Python
ゼロ知識の初心者がデータサイエンスを完全無料で学習する方法5選
データサイエンスの知識や技術、またはPythonについて学びたい。でも「大学に行くほど本気度がない」、「スクールに行くほどお金がない」、なんせ「時間がない」という方も多いはずです。というよりほとんどの方がそうだと思います(当然わたし...
初心者に人気のプログラミング言語Pythonは独学可能か?
Pythonは非常に人気のあるプログラミング言語で、まったくの初心者でも独学が可能と言われています。 Pythonはさまざまな目的に使える、汎用性のあるプログラミング言語です。 プログラミングは「独学が難しい」と言われていま...

データサイエンティスト協会の100本ノックがGitHubに公開しているデータとPythonコードを初心者にでも分かるように解説していきます。

今回は10~16本です。内容は主に、「変数の一部を使ってデータを抽出する方法」について解説していきます。

Pythonの環境設定は以下の記事を参考にして下さい。

【2021年最新】M1 mac でanacondaをインストールする方法

【2021年最新】WindowsでAnacondaをインストールする方法

変数の一部を使ってデータを抽出する方法

まずは、以下からダウンロードして下さい。

GitHubからデータをダウンロードする方法

P-010: 店舗データフレーム(df_store)から、店舗コード(store_cd)が”S14″で始まるものだけ全項目抽出し、10件だけ表示せよ。

import pandas as pd

df_store = pd.read_csv("store.csv") # データの読み込み
df_store.query("store_cd.str.startswith('S14')", engine='python').head(10)

データの読み込みは、pandas の read_csv で行います。csv を read(読む)、そのままですね。

それを = で 「df_store」 と名前をつけましょう。

query はその後の()内に条件を指定して、条件に合うデータのみを抽出するためコードです。

以下の説明のように、文字の意味をそのままコードとして使えます。

P-011: 顧客データフレーム(df_customer)から顧客ID(customer_id)の末尾が1のものだけ全項目抽出し、10件だけ表示せよ。

df_customer = pd.read_csv("customer.csv")
df_customer.query("customer_id.str.endswith('1')",engine='python').head(10)

さきほどの問題(P-010)とほぼ一緒ですね。違いは、文字の最初(P-010)か最後の文字(P-011)かです。コードもstarts(最初)とends(最後)の違いです。

P-012: 店舗データフレーム(df_store)から横浜市の店舗だけ全項目表示せよ。

df_store.query("address.str.contains('横浜市')",engine='python')

今度は、文字の場所の指定はしていません。指定した文字が含まれていればいいです。

なので、出力結果の「address」をみてみると、”横浜市” の場所はさまざまです。(とはいえ住所なので、結果的に神奈川県の後ろに “横浜市” が位置することになりますが)

P-013: 顧客データフレーム(df_customer)から、ステータスコード(status_cd)の先頭がアルファベットのA〜Fで始まるデータを全項目抽出し、10件だけ表示せよ。

df_customer.query("status_cd.str.contains('^[A-F]', regex=True)", engine='python').head(10)

次は少しややこしいですが、条件の場所は^で指定しています。

^は先頭を示し、その後に、条件の文字が位置します。すなわち、[A-F] (A~Fの文字)です。

P-014: 顧客データフレーム(df_customer)から、ステータスコード(status_cd)の末尾が数字の1〜9で終わるデータを全項目抽出し、10件だけ表示せよ。

df_customer.query("status_cd.str.contains('[1-9]$',regex=True)",engine='python').head(10)

さきほどの問題(P-013)とほぼ一緒ですね。違いは、文字の最初(P-013)か最後の文字(P-014)かです。コードも ^(最初)と$(最後)の違いです。

P-015: 顧客データフレーム(df_customer)から、ステータスコード(status_cd)の先頭がアルファベットのA〜Fで始まり、末尾が数字の1〜9で終わるデータを全項目抽出し、10件だけ表示せよ。

df_customer.query("status_cd.str.contains('^[A-F].*[1-9]$',regex=True)",engine='python').head(10)

複数の条件を一緒に提示できます。

このように、query は複数条件のときに便利です。

P-016: 店舗データフレーム(df_store)から、電話番号(tel_no)が3桁-3桁-4桁のデータを全項目表示せよ。

df_store.query("tel_no.str.contains('[0-9]{3}-[0-9]{3}-[0-9]{4}$',regex=True)",engine='python')

次は、電話番号の桁数を指定しています。この場合は、()内に数値を、{}内に桁数を指定します。

【Python初心者でも分かる】データサイエンティスト協会の100本ノックを解説|データの抽出
データサイエンティスト協会の100本ノックがGitHubに公開しているデータとPythonコードを初心者にでも分かるように解説していきます。 今回は1~9本です。内容は主に、「データの抽出方法」について解説していきます...
【Python初心者でも分かる】データサイエンティスト協会の100本ノックを解説|ソート(順序で整列)
データサイエンティスト協会の100本ノックがGitHubに公開しているデータとPythonコードを初心者にでも分かるように解説していきます。 今回は17~20本です。内容は主に、「ソート(順序で整列)の方法」について解...



コメント

タイトルとURLをコピーしました