【Python Coding】pandasでデータフレーム内の文字列を自由に抽出する方法を解説
こんにちは、たなです。
今回は、pythonのpandasを用いてデータフレームに含まれる「文字列」を抽出する方法を解説していきます。
「データフレームに含まれる特定の文字列データを抽出したい」
「特定の文字列で始まる/終わるデータを抽出したい」
こんな方法をご紹介していきます。
本記事の内容
- データフレーム内の文字列にアクセスする方法
- 特定の文字列で始まる/終わるデータを抽出する方法
- 特定の文字列を含むデータを抽出する方法
僕のブログでは【完全ガイド】pythonの学習サイトをレベル別に紹介!【基礎から機械学習・人工知能までのロードマップ】という記事も公開しています。より高みを目指したい人は参考にしてみてください。
pythonの学習ロードマップへpandasを使ってデータフレーム内の文字列を抽出する方法
必要ライブラリのインポート
import pandas as pd
必要なライブラリをインポートしておきます。今回はpandasだけでOKです。
利用データの作成
文字列が含まれているデータセットであれば何でも大丈夫なので、この記事を見ている方はご自分が持っているデータで確認してみてください。僕は手元にタイタニックデータがあるので、これを使っていこうかと思います。
以下のようにしてデータを読み込みデータフレーム化しておきます。
このデータを用いて、特定の文字列を抽出する方法を3つほど見ていきたいと思います。
データフレーム抽出方法①:○○で始まる文字列を抽出
まずは、「○○で始まる文字列」を抽出する方法です。
データセット内にある「Ticket」カラムは文字列なので、これを使ってみます。
TicketのNoに規則性はなさそうですが、最初のデータのようにTicket Noが「A/5」から始まる乗船者のデータを抽出してみましょう。
出力結果の赤枠部分の「冒頭」を見てもらえれば分かる通り、「A/5」で始まるTicketを抽出出来ました。
ポイントは以下2点となります。
【ポイント①】 「df[column名].str」で文字列にアクセス出来るようになる
【ポイント②】 ○○で始まる文字列の抽出には「startswith(○○)」を使う
データフレーム抽出方法②:○○で終わる文字列を抽出
次に、「○○で終わる文字列」を抽出する方法を見てみます。
先ほどと同様に、カラム「Ticket」を使いましょう。
今度は、最初のデータのようにTicket Noが「71」で終わっている乗船者のデータを抽出してみます。
すると、出力結果の赤枠部分のように、最後の部分がすべて「71」になっていますね。
(見た目上は)「71」という数字を抽出していますが、この「Ticket」カラムでは文字列として認識されている点だけ注意です。
ここでのポイントは以下2点です。
【ポイント①】 「df[column名].str」で文字列にアクセス出来るようになる
【ポイント②】 ○○で終わる文字列の抽出には「endswith(○○)」を使う
データフレーム抽出方法③:○○が含まれる文字列を抽出
最後に、「○○が含まれる文字列」を抽出する方法を紹介します。
今度は気分を変えてカラム「Name」を使ってみましょう。
色々な名前がありそうですが、「David」が含まれる乗船者のデータを抽出してみたいと思います。
出力結果の赤枠部分を見ると、すべてのデータに「David」が含まれているのがわかりますね。
「○○が含まれている文字列」を抽出したい場面は結構多いので、是非使えるようにしてください。
ポイントをまとめておきます。
【ポイント①】 「df[column名].str」で文字列にアクセス出来るようになる
【ポイント②】 ○○が含まれる文字列の抽出には「contains(○○)」を使う
まとめ:データフレームの文字列を自由に抽出してデータ分析の自由度を高めよう
今回は、pythonのpandasを用いてデータフレームに含まれる文字列を抽出する方法を紹介してきました。
「部分一致」でデータを自由に抽出出来るようになると、データ分析上は非常に便利になるので、是非参考にしてみてください。
冒頭でも紹介しましたが、pythonの学習方法を【完全ガイド】pythonの学習サイトをレベル別に紹介!【基礎から機械学習・人工知能までのロードマップ】でまとめています。良ければあわせて読んでみてください。
【完全ガイド】pythonの学習サイトをレベル別に紹介!【基礎から機械学習・人工知能までのロードマップ】
pythonを極めたいすべての人に贈る学習ロードマップ。おすすめの学習サイトをレベル別に紹介しているので、pythonのレベルをあげていきたいと考えるすべての人に読んで欲しい記事です。これさえ読めば、自分に合っている学習方法やこれから目指すべき方向性がわかります。pythonライフ、楽しんでいきましょう。
よいpythonライフを。