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