从Datafram中提取字符串

2024-05-16 04:11:33 发布

您现在位置:Python中文网/ 问答频道 /正文

from pandas import DataFrame,Series
import pandas as pd
df
text                                                 region
The Five College Region                           The Five College Region
South Hadley (Mount Holyoke College)              South Hadley
Waltham (Bentley University), (Brandeis Univer..) Waltham

区域应该从text中提取。 如果行包含“(”,请删除“(”之后的任何内容,然后删除空白。 如果行不包含“(”,请保留它并复制到区域。 我知道我可以用str.extract函数来处理它。但我很难写出正确的regex模式

^{pr2}$

此正则表达式模式无法提取第一个字符串 我也承认使用split functon可以解决这个问题

str.split('(')[0]

但我不知道如何将结果放入列中。 希望能得到涵盖这两种方法的答案。在


Tags: thetextfromimport区域pandas模式region
1条回答
网友
1楼 · 发布于 2024-05-16 04:11:33

选项1
assign+str.split

df.text.str.split('\s*\(').str[0]

0    The Five College Region
1               South Hadley
2                    Waltham
Name: text, dtype: object

^{pr2}$

选项2
join+str.extract

df.text.str.extract('(?P<region>[^\(]+)\s*\(*', expand=False)

0    The Five College Region
1               South Hadley
2                    Waltham
Name: text, dtype: object

df.join(df.text.str.extract('(?P<region>[^\(]+)\s*\(*', expand=False))

                                                text                   region
0                            The Five College Region  The Five College Region
1               South Hadley (Mount Holyoke College)             South Hadley
2  Waltham (Bentley University), (Brandeis Univer..)                  Waltham

相关问题 更多 >