Pandas で列の部分文字列を取得する
- Pandas で列の部分文字列を取得する
-
str.slice()
関数を使用して Pandas の列の部分文字列を取得する - 角かっこを使用して Pandas の列の部分文字列を取得する
-
str.extract()
関数を使用して 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 の列の部分文字列を取得できます。