Pandas で部分文字列を取得する
- 
          
            Pandas DataFrame列の値からSubstringを取得する
- 
          
            文字列から 最初の N文字を抽出する
- 
          
            文字列から 最後の N文字を抽出する
- 
          
            文字列の途中から Any Substringを抽出する
 
Pandas は、Python のオープンソース データ分析ライブラリです。 数値データに対して操作を実行するための組み込みメソッドが多数用意されています。
このガイドでは、さまざまな方法で pandas データ フレーム列の値から部分文字列 (文字列の一部) を取得します。 文字列から意味のある部分文字列を抽出したい場合に役立ちます。
Pandas DataFrame 列の値から Substring を取得する
このタスクを達成するために string slicing メソッドを使用します。 str.slice() メソッドは、実際の文字列を変更せずに文字列の一部を返します。
構文:
# Python 3.x
df.column_name.str.slice(start_index, end_index)
str アクセサーと角括弧 ([]) を使用して、文字列のスライスを行うこともできます。
# Python 3.x
df.column_name.str[start_index:end_index]
文字列から 最初の N 文字を抽出する
次の例には、完全なプロセッサ名で構成される Pandas データ フレームがあります。 部分文字列 intel (最初の 5 文字) を取得する場合は、0 と 5 をそれぞれ start と end インデックスとして指定します。
角括弧法を使用する場合は、同じ意味であるため、終了インデックスのみを言及することもできます。
コード例:
# Python 3.x
import pandas as pd
import numpy as np
df = {"Processor": ["Intel Core i7", "Intel Core i3", "Intel Core i5", "Intel Core i9"]}
df = pd.DataFrame.from_dict(df)
display(df)
df["Brand Name"] = df.Processor.str.slice(0, 5)
display(df)
出力:

文字列から 最後の N 文字を抽出する
文字列から brand modifier (最後の 2 文字) を抽出したい場合は、文字列のスライスで negative indexing を使用します。 開始インデックス -2 (最後から 2 番目の文字のインデックス) を渡し、終了インデックスは空のままにします。
文字列の最後の 2 文字が自動的に取得されます。
コード例:
# Python 3.x
import pandas as pd
import numpy as np
df = {"Processor": ["Intel Core i7", "Intel Core i3", "Intel Core i5", "Intel Core i9"]}
df = pd.DataFrame.from_dict(df)
display(df)
df["Brand Modifier"] = df.Processor.str.slice(
    -2,
)
display(df)
出力:

文字列の途中から Any Substring を抽出する
文字列の途中から部分文字列を取得するには、文字列スライスで開始インデックスと終了インデックスを指定する必要があります。 ここで、Core という単語を取得したい場合は、開始インデックスと終了インデックスとしてそれぞれ 6 と 10 を指定します。
指定された位置の間(およびその位置を含む)の部分文字列を取得します。
コード例:
# Python 3.x
import pandas as pd
import numpy as np
df = {"Processor": ["Intel Core i7", "Intel Core i3", "Intel Core i5", "Intel Core i9"]}
df = pd.DataFrame.from_dict(df)
display(df)
df["Series"] = df.Processor.str[6:10]
display(df)
出力:

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn