[Python]Pandasで文字列データを効率的に抽出する方法

Pandasを使って文字列データを読み込む方法

まずは、Pandasを使って文字列データを読み込む方法から始めましょう。PandasはCSV、Excel、データベースなどからデータを読み込むことができますが、ここではCSVファイルを例に説明します。

import pandas as pd
# CSVファイルからデータを読み込む
df = pd.read_csv('data.csv')

特定の文字列を含むデータの抽出方法

特定の文字列を含むデータを抽出するには、PandasのDataFrameに対して条件を指定します。例えば、特定のキーワードを含む行を抽出する場合、次のようにします。

# 'keyword'を含む行を抽出
filtered_df = df[df['column_name'].str.contains('keyword')]

正規表現を使ってパターンに一致する文字列を抽出する方法

正規表現を使用して、特定のパターンに一致する文字列を抽出することもできます。正規表現を使うには、Pandasのstr.contains()メソッドに正規表現パターンを指定します。

import re
# 正規表現パターンを定義
pattern = r'\d{3}-\d{2}-\d{4}' # 例: ハイフン区切りの社会保障番号
# 正規表現に一致する行を抽出
matches = df[df['column_name'].str.contains(pattern, regex=True)]

特定の条件を満たす文字列を抽出して新しい列に追加する方法

特定の条件を満たす文字列を抽出して新しい列に追加する場合、Pandasのapply()メソッドを使用します。例えば、文字列が特定の長さを持つ場合に新しい列に追加することを考えてみましょう。

# 文字列の長さが5以上の場合、新しい列に追加
df['new_column'] = df['column_name'].apply(lambda x: x if len(x) >= 5 else None)

部分文字列を抽出してデータの整形を行う方法

文字列から部分文字列を抽出してデータの整形を行うこともあります。Pandasのstr.extract()メソッドを使用して、正規表現を使って部分文字列を抽出できます。

# 正規表現を使用して部分文字列を抽出
df['extracted_value'] = df['column_name'].str.extract(r'(\d{3}-\d{2}-\d{4})')

まとめ

今回はPandasを使って文字列データを効率的に抽出する方法について紹介しました。Pandasの文字列メソッドや正規表現を駆使することで、データ分析プロジェクトでの文字列データの取り扱いが容易になります。効率的なデータ抽出は、データ分析の成功に欠かせないスキルです。是非、これらの方法を活用して、データ分析の効率を向上させてください。