たなブログ 人生リア充化を目指すブログ(`・ω・´)

【Python Coding】pandasでデータフレーム内の文字列を自由に抽出する方法を解説

Pythonを学ぶ

こんにちは、たなです。
今回は、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ライフを。