如何在 python 中的列数据框上的特殊字符之间提取字符串?
How to extract a string between special character on a column dataframe in python?
我有这个 Python Pandas DataFrame:
Municipio
São Caetano do Sul (SP)
Florianópolis (SC)
Vitória (ES)
如何提取()之间的项并将其转化为:
Municipio UF
São Caetano do Sul (SP) (SP)
Florianópolis (SC) (SC)
Vitória (ES) (ES)
df['UF'] = df['Municipio'].str.split('(').str[1].str[:-1]
你可以试试pandas.Series.str.extract
df['UF'] = df['Municipio'].str.extract('(\([^)]*\))')
print(df)
Municipio UF
0 São Caetano do Sul (SP) (SP)
1 Florianópolis (SC) (SC)
2 Vitória (ES) (ES)
使用str.extract
我们可以尝试:
df["UF"] = df["Municipio"].str.extract(r'(\([A-Z]+\))')
您可以尝试使用命名捕获组:
df = pd.DataFrame(
{
"Municipio": [
"São Caetano do Sul (SP)",
"Florianópolis (SC)",
"Vitória (ES)",
]
}
)
print(f"df=\n{df}")
df = df["Municipio"].str.extract(r"(?P<Municipio>.+(?=\())(?P<UF>\(\w+\))")
print(f"df_extracted=\n{df}")
输出:
df=
Municipio
0 São Caetano do Sul (SP)
1 Florianópolis (SC)
2 Vitória (ES)
df_extracted=
Municipio UF
0 São Caetano do Sul (SP)
1 Florianópolis (SC)
2 Vitória (ES)
我有这个 Python Pandas DataFrame:
Municipio
São Caetano do Sul (SP)
Florianópolis (SC)
Vitória (ES)
如何提取()之间的项并将其转化为:
Municipio UF
São Caetano do Sul (SP) (SP)
Florianópolis (SC) (SC)
Vitória (ES) (ES)
df['UF'] = df['Municipio'].str.split('(').str[1].str[:-1]
你可以试试pandas.Series.str.extract
df['UF'] = df['Municipio'].str.extract('(\([^)]*\))')
print(df)
Municipio UF
0 São Caetano do Sul (SP) (SP)
1 Florianópolis (SC) (SC)
2 Vitória (ES) (ES)
使用str.extract
我们可以尝试:
df["UF"] = df["Municipio"].str.extract(r'(\([A-Z]+\))')
您可以尝试使用命名捕获组:
df = pd.DataFrame(
{
"Municipio": [
"São Caetano do Sul (SP)",
"Florianópolis (SC)",
"Vitória (ES)",
]
}
)
print(f"df=\n{df}")
df = df["Municipio"].str.extract(r"(?P<Municipio>.+(?=\())(?P<UF>\(\w+\))")
print(f"df_extracted=\n{df}")
输出:
df=
Municipio
0 São Caetano do Sul (SP)
1 Florianópolis (SC)
2 Vitória (ES)
df_extracted=
Municipio UF
0 São Caetano do Sul (SP)
1 Florianópolis (SC)
2 Vitória (ES)