Pandas で列の部分文字列を取得する

Preet Sanghavi 2023年6月21日
  1. Pandas で列の部分文字列を取得する
  2. str.slice() 関数を使用して Pandas の列の部分文字列を取得する
  3. 角かっこを使用して Pandas の列の部分文字列を取得する
  4. str.extract() 関数を使用して Pandas の列の部分文字列を取得する
Pandas で列の部分文字列を取得する

このチュートリアルでは、Pandas で列の部分文字列を取得する方法を学習します。

Pandas で列の部分文字列を取得する

この抽出は、データを操作する多くのシナリオで役立ちます。 たとえば、ユーザーの名前からユーザー名を作成したい場合を考えてみましょう。

これを実行するために、複数のアプローチを使用します。

まず、チュートリアル全体で使用する Pandas データ フレームを作成しましょう。 データ フレームに name 列を含め、その列からユーザー名を抽出することを目指します。

コード:

import pandas as pd

dict = {"Name": ["Shivesh Jha", "Sanay Shah", "Rutwik Sonawane"]}
df = pd.DataFrame.from_dict(dict)

データフレームを見てみましょう。

print(df)

出力:

              Name
0      Shivesh Jha
1       Sanay Shah
2  Rutwik Sonawane

列から部分文字列を取得するために使用できるさまざまな方法を見てみましょう。

str.slice() 関数を使用して Pandas の列の部分文字列を取得する

このアプローチでは、str.slice() 関数を使用して name 列から最初の 3 文字を取得し、それを特定のユーザーのユーザー名として使用します。 slice() 関数では、抽出したい文字列の開始インデックスと終了インデックスを渡す必要があります。

以下のコードを使用して、この機能を実行します。

df["UserName"] = df["Name"].str.slice(0, 3)
print(df)

name 列の最初の 3 文字を含む新しい username 列がある更新されたデータ フレームを見てみましょう。

出力:

              Name UserName
0      Shivesh Jha      Shi
1       Sanay Shah      San
2  Rutwik Sonawane      Rut

name 列から最初の 3 文字を正常に抽出し、それらを新しい username 列で使用したことを出力で確認できます。

角かっこを使用して Pandas の列の部分文字列を取得する

角括弧を使用して文字列にアクセスし、このアプローチで抽出したい文字を取得します。 以下のコードを使用して、このアクションを実行します。

df["UserName"] = df["Name"].str[:3]

出力:

              Name UserName
0      Shivesh Jha      Shi
1       Sanay Shah      San
2  Rutwik Sonawane      Rut

このコードでは、既存の列の最初の 3 文字で新しい列を取得したことがわかります。

str.extract() 関数を使用して Pandas の列の部分文字列を取得する

このアプローチは、名前からユーザーの姓を抽出します。 str.extract() 関数を使用してこれを実装します。

コード:

df["LastName"] = df.Name.str.extract(r"\b(\w+)$", expand=True)

それでは、更新されたデータフレームを確認してみましょう。

print(df)

出力:

              Name  LastName
0      Shivesh Jha       Jha
1       Sanay Shah      Shah
2  Rutwik Sonawane  Sonawane

上記のように、目的の結果が得られました。 したがって、上記の手法を使用して、Pandas の列の部分文字列を取得できます。

著者: Preet Sanghavi
Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

関連記事 - Pandas DataFrame Column