PythonのPandasの文字列の置換について

Python,イメージ

AI実装検定のご案内

ここでは PythonのPandasにおける文字列の置換(str.replacereplaceメソッド) について、基本から応用まで詳しく解説します。

目次

Pandasにおける文字列置換の方法

Pandasで文字列を置換する方法は大きく分けて以下の2種類があります。

  1. Series.str.replace() を使う方法
    • DataFrameやSeriesの文字列データに対して部分置換を行う
    • 正規表現の利用が可能
    • 細かいパターンマッチに便利
  2. DataFrame.replace() / Series.replace() を使う方法
    • 値そのものを置換する
    • 単純な値置換や複数指定置換に便利
    • 正規表現もサポート

str.replace() を使った文字列部分の置換

基本構文

df['列名'].str.replace('置換前', '置換後', regex=False)

※このコード単体では、出力はできません。

  • regex=False を指定すると単純な文字列置換
  • regex=True(デフォルト)は正規表現として解釈

使用例

import pandas as pd

df = pd.DataFrame({
    'text': ['apple pie', 'banana cake', 'cherry tart']
})

# 'a' を 'A' に置換
df['text_replace'] = df['text'].str.replace('a', 'A', regex=False)
print(df)

正規表現を使った str.replace()

数字を削除

df = pd.DataFrame({
    'code': ['abc123', 'def456', 'ghi789']
})

df['removed'] = df['code'].str.replace(r'\d+', '', regex=True)
print(df)

replace() を使った値の置換

基本構文

df['列名'].replace({'置換前1': '置換後1', '置換前2': '置換後2'})

※このコード単体では、出力はできません。

使用例

df = pd.DataFrame({
    'fruit': ['apple', 'banana', 'cherry', 'banana']
})

# 辞書を使って複数置換
df['fruit_replace'] = df['fruit'].replace({
    'apple': 'APPLE',
    'banana': 'BANANA'
})
print(df)

DataFrame全体に対する置換

全カラムに対して適用

df = pd.DataFrame({
    'col1': ['foo', 'bar', 'baz'],
    'col2': ['foo123', 'bar456', 'baz789']
})

# 'foo' を 'FOO' に置換(全カラム対象)
df_replace = df.replace('foo', 'FOO', regex=False)
print(df_replace)

応用例

部分一致の置換(前方一致)

import pandas as pd

# データ準備
df = pd.DataFrame({
    'name': ['Mr. Smith', 'Ms. Johnson', 'Dr. Brown']
})

# 正規表現で敬称を削除
df['clean_name'] = df['name'].str.replace(r'^(Mr\.|Ms\.|Dr\.)\s*', '', regex=True)

print("=== セクション5 ===")
print(df)

大文字小文字を区別しない置換

import pandas as pd

# データ準備
df = pd.DataFrame({
    'text': ['Dog', 'dog', 'DOG']
})

# 大文字小文字を無視して 'dog' → 'cat'
df['replace'] = df['text'].str.replace('dog', 'cat', case=False, regex=True)

print("=== セクション6 ===")
print(df)

まとめ

  • 部分的な文字列置換Series.str.replace()
  • 単純な値や複数値の置換replace()
  • 正規表現を使うと柔軟な置換が可能
  • DataFrame全体にも適用できる

以上、PythonのPandasの文字列の置換についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次