我有一个pandas数据帧。我感兴趣的数据帧的列包含字符串。字符串中有一个带有方括号的部分。看起来是这样的:
Some Data (More Info)
Some Data (More Info)
Some Data (More Info)
我要做的是选择括号之间的数据,并将其粘贴到一个新列中。我一直在玩split,但我无法让它发挥作用,因为我在绳子的末端多了一个"("。有没有办法在没有括号的情况下选择数据?我不认为我只能用空格来分割,因为我的some data
中有空格。
我将数据拆分为:
df_split = df_abc['title'].str.split('(', expand=True)
使用str.extract
:
res = df_abc['title'].str.extract(r'((.*?))')
print(res)
输出
0
0 More Info
1 More Info
2 More Info
另一种选择是使用命名的捕获组来获得列名:
res = df_abc['title'].str.extract(r'((?P<text>.*?))')
print(res)
输出
text
0 More Info
1 More Info
2 More Info
还可能值得查看str.extractall
,以查找该模式的多次出现。