はじめに
この実験では、pandas でテキストデータを扱う方法を紹介します。テキストデータを格納する方法、データ前処理と変換に文字列メソッドを使用する方法、および正規表現を使用して部分文字列を抽出する方法を学びます。また、機械学習アルゴリズム用のダミー変数を作成する方法も学びます。
VM のヒント
VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み完了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
テキストデータを格納する
pandas では、テキストデータを格納する方法は 2 通りあります。object 型の NumPy 配列を使用するか、StringDtype 拡張型を使用することです。一般的な object 型よりも安全で特定性が高いため、StringDtype を使用することをお勧めします。
import pandas as pd
## `object` 型でシリーズを作成する
s1 = pd.Series(["a", "b", "c"], dtype="object")
## `StringDtype` でシリーズを作成する
s2 = pd.Series(["a", "b", "c"], dtype="string")
文字列メソッドを使用する
Pandas は、文字列データを操作しやすくする一連の文字列処理メソッドを提供しています。これらのメソッドは、欠損値/NA 値を自動的に除外します。
s = pd.Series(
["A", "B", "C", "Aaba", "Baca", np.nan, "CABA", "dog", "cat"], dtype="string"
)
## 小文字に変換する
s.str.lower()
## 大文字に変換する
s.str.upper()
## 各文字列の長さを計算する
s.str.len()
部分文字列を抽出する
正規表現を使用して部分文字列を抽出することができます。extract メソッドは、少なくとも 1 つのキャプチャ グループを持つ正規表現を受け付けます。
## 各文字列から最初の数字を抽出する
s = pd.Series(["a1", "b2", "c3"], dtype="string")
s.str.extract(r"(\d)", expand=False)
文字列のテスト
それぞれ contains メソッドと match メソッドを使用して、要素が特定のパターンを含むかまたはパターンと一致するかどうかを確認することができます。
## 各文字列がパターン "a" を含むかどうかを確認する
s.str.contains("a", na=False)
## 各文字列がパターン "a" と一致するかどうかを確認する
s.str.match("a", na=False)
ダミー変数を作成する
get_dummies メソッドを使用して、文字列データからダミー変数を作成することができます。
## ダミー変数を作成する
s = pd.Series(["a", "a|b", np.nan, "a|c"], dtype="string")
s.str.get_dummies(sep="|")
まとめ
この実験では、pandas でテキストデータを扱う方法を学びました。テキストデータを格納する方法、データ前処理と変換に文字列メソッドを使用する方法、正規表現を使って部分文字列を抽出する方法、要素が特定のパターンを含むかまたはパターンと一致するかどうかをテストする方法、およびダミー変数を作成する方法を学びました。これらの技術は、機械学習アルゴリズム用のテキストデータを処理するための基礎となっています。