データ分析の現場では、数値データだけでなく、文字列データを扱うことも多いですよね。
顧客名や商品名、住所、日付など、文字列データの処理は避けて通れません。Pandasでは、strメソッドを活用することで、文字列データの操作がとても簡単に行えます。この記事では、Pandasのstrメソッドを使った文字列操作の基本と、その活用方法をわかりやすく解説します。
strメソッドの基本
Pandasでは、文字列データに対してstrメソッドを使うことで、さまざまな操作が簡単にできます。strメソッドは、Pandasの文字列データ(SeriesやDataFrameの列)に適用できる多くの便利な機能をまとめたものです。
strメソッドを使うと、文字列に対する操作をチェーンでつなげて行うことができます。たとえば、文字列を小文字に変換するには次のようにします。
1 2 3 4 5 |
import pandas as pd #サンプルデータの作成 data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve']} df = pd.DataFrame(data) df |

1 2 3 |
# すべての名前を小文字に変換 df['Name_lower'] = df['Name'].str.lower() df |

このコードでは、Name列のすべての文字列が小文字に変換されています。文字列操作がチェーンでつなげられるのが便利ですよね。
文字列の変換
文字列データの処理でよく使うのが、文字列の変換です。大文字・小文字の変換や、文字列の置換など、strメソッドを使って簡単に行えます。
すべての名前を大文字に変換
1 |
df['Name_upper'] = df['Name'].str.upper() |
各単語の最初の文字を大文字に変換
1 2 |
df['Name_title'] = df['Name'].str.title() df |

これで、文字列の見た目を自由に変えられますね!特に、データを一貫したフォーマットに整えるのに便利です。
文字列の置換
特定の文字列を別の文字列に置き換えたいときもありますよね。str.replaceメソッドを使うと簡単にできます。
1 2 3 |
# 'a'を'A'に置換 df['Name_replaced'] = df['Name'].str.replace('a', 'A') df |

これで、すべての'a'が'A'に置き換えられました。複数の文字列を一度に置き換えたいときにも使えますよ。
また、特定の部分だけを取り出したいときや、文字列を分割したいときにもstrメソッドが役立ちます。
最初の3文字を抽出
1 2 |
df['Name_first3'] = df['Name'].str[:3] df |

このようにして、簡単に部分文字列を取り出せます。これは、データの一部だけが必要なときに便利ですね。
文字列の分割
文字列を特定の区切り文字で分割して、それぞれの部分を別の列にすることができます。たとえば、フルネームを名前と苗字に分ける場合などです。
1 2 3 |
data = {'Full_Name': ['Alice Johnson', 'Bob Smith', 'Charlie Brown']} df = pd.DataFrame(data) df |
スペースで分割して、最初の部分を'First_Name'列に、次の部分を'Last_Name'列にしてみます。
1 2 |
df[['First_Name', 'Last_Name']] = df['Full_Name'].str.split(' ', expand=True) df |

このコードでは、スペースでフルネームを分割し、それぞれの部分を新しい列にしています。名前や住所のデータを整理するときに役立ちますよ!
文字列のフィルタリング
「特定の文字列を含む行だけを抽出したい」というニーズもよくありますよね。strメソッドを使って、文字列データを簡単にフィルタリングできます。
特定の文字列を含む行の抽出
たとえば、名前に'a'を含む行だけを抽出するには、str.containsメソッドを使います。
1 2 |
df_a = df[df['Full_Name'].str.contains('a')] df_a |

これで、'a'を含む名前だけが抽出されました。特定のパターンにマッチするデータを抽出したいときに便利です!
正規表現を使ったフィルタリング
正規表現を使って、もっと複雑なパターンにマッチする文字列をフィルタリングすることもできます。
1 2 |
df_b_start = df[df['Full_Name'].str.contains('^b', case=False, regex=True)] df_b_start |
このコードでは、'b'で始まる名前を抽出しています。正規表現を使うことで、より柔軟なフィルタリングが可能になります。
まとめ
Pandasのstrメソッドを使えば、文字列データの操作が驚くほど簡単にできます。大文字・小文字の変換、文字列の置換、部分文字列の抽出、文字列の分割、そしてフィルタリングまで、あらゆる操作が手軽に行えます。
データ分析をする上で、文字列操作は避けて通れません。この記事で紹介したテクニックを活用して、文字列データを自在に操れるようになりましょう!
======================================================
さらにデータサイエンスを学んでいきたいという方向けに「Pythonによるデータサイエンス」動画を提供しています。
基礎編・応用編それぞれ35時間以上の動画となっており、今なら50%OFFですので、ぜひチェックしてみてください!
>>>Pythonによるデータサイエンス基礎編
>>>Pythonによるデータサイエンス応用編