从pandas列中删除字符

时间:2017-05-03 18:59:32

标签: python regex pandas

我试图简单地删除'('和')'从熊猫专栏系列的开头和结尾开始。这是我到目前为止最好的猜测,但它只返回空字符串,并且()完好无损。

postings['location'].replace('[^\(.*\)?]','', regex=True)

该列如下所示: screenshot of jupyter notebook

2 个答案:

答案 0 :(得分:2)

工作示例

df = pd.DataFrame(dict(location=['(hello)']))

print(df)

  location
0  (hello)

@ Psidom的解决方案
str.strip

df.location.str.strip('()')

0    hello
Name: location, dtype: object

选项2
str.extract

df.location.str.extract('\((.*)\)', expand=False)

0    hello
Name: location, dtype: object

选项3
str.replace

df.location.str.replace('\(|\)', '')

0    hello
Name: location, dtype: object

选项4
replace

df.location.replace('\(|\)', '', regex=True)

0    hello
Name: location, dtype: object

答案 1 :(得分:0)

您使用[^\(.*\)?]执行的操作匹配您在字符类中提到的所有其他字符。字符类中的^意味着否定该集合。

应尝试使用^\(|\)$并替换为"",即空字符串。

<强> Regex101 Demo