この短いガイドでは、Pandas を使用して文字列内の特定の文字を抽出する方法を説明します。
以下の 8 つのシナリオのそれぞれの目標は、文字列内の数字のみを抽出することです。
- 左から
- 右から
- 真ん中から
- シンボルの前
- スペースの前
- シンボルの後
- 同一の記号間
- 異なるシンボル間
左からN桁を抽出します。
(1)str[:5]を使って左から5桁の数字を抽出します。
import pandas as pd
data = {"Identifier": ["55555-abc", "77777-xyz", "99999-mmm"]}
df = pd.DataFrame(data)
df["Identifier"] = df["Identifier"].str[:5]
print(df)
結果:

右からN桁を抽出します。
(2)str[-5:]を使って右から5桁の数字を抽出します。
import pandas as pd
data = {"Identifier": ["ID-55555", "ID-77777", "ID-99999"]}
df = pd.DataFrame(data)
df["Identifier"] = df["Identifier"].str[-5:]
print(df)
結果:

中央の「N」桁を抽出します。
str[3:8]を使って真ん中の5桁の数字を抽出します。
import pandas as pd
data = {"Identifier": ["ID-55555-End", "ID-77777-End", "ID-99999-End"]}
df = pd.DataFrame(data)
df["Identifier"] = df["Identifier"].str[3:8]
print(df)
結果:

(4) str.split(“-“).str[0]を使って記号(“-“)の前の数字を抽出します。
import pandas as pd
data = {"Identifier": ["111-AA", "2222222-BB", "33-CC"]}
df = pd.DataFrame(data)
df["Identifier"] = df["Identifier"].str.split("-").str[0]
print(df)
結果:

(5) str.split(” “).str[0]を使ってスペース(” “)の前の数字を抽出します。
import pandas as pd
data = {"Identifier": ["111 AA", "2222222 BB", "33 CC"]}
df = pd.DataFrame(data)
df["Identifier"] = df["Identifier"].str.split(" ").str[0]
print(df)
結果:

(6) str.split(“-“).str[1]を使って記号(“-“)の後の数字を抽出します。
import pandas as pd
data = {"Identifier": ["AA-111", "BB-2222222", "CC-33"]}
df = pd.DataFrame(data)
df["Identifier"] = df["Identifier"].str.split("-").str[1]
print(df)
結果:

(7) str.split(“-“).str[1]を使って、同一の記号(“-“)の間にある数字を抽出します。
import pandas as pd
data = {"Identifier": ["AA-111-AA", "BB-2222222-B", "CC-33-CCC"]}
df = pd.DataFrame(data)
df["Identifier"] = df["Identifier"].str.split("-").str[1]
print(df)
結果:

(8)異なる記号間の数字を抽出します。
import pandas as pd
data = {"Identifier": ["AA-111$AA", "BB-2222222$B", "CC-33$CCC"]}
df = pd.DataFrame(data)
df["Identifier"] = df["Identifier"].str.split("-").str[1]
df["Identifier"] = df["Identifier"].str.split("$").str[0]
print(df)
結果:
