python中的Str.replace似乎不起作用

python中的Str.replace似乎不起作用,python,pandas,Python,Pandas,我的问题很简单。我的dataframe的列名包括它们的源代码,但我想去掉它以使其更简单 df.columns返回 Index(['a_(Source:_WaPo)','b_(Source:_WaPo)','c_(Source:_WaPo)'], dtype='object') 所以我所做的是 df.columns = df.columns.str.replace('_(Source:_WaPo)','') 我在jupyter笔记本上工作,所以我试着在没有自我分配的情况下做,看看

我的问题很简单。我的dataframe的列名包括它们的源代码,但我想去掉它以使其更简单

df.columns返回

 Index(['a_(Source:_WaPo)','b_(Source:_WaPo)','c_(Source:_WaPo)'],
      dtype='object')
所以我所做的是

df.columns = df.columns.str.replace('_(Source:_WaPo)','')
我在jupyter笔记本上工作,所以我试着在没有自我分配的情况下做,看看会是什么样子

df.columns.str.replace('_(Source:_WaPo)','')
但是这些列根本没有改变

有其他的方法吗?还是我做错了?任何帮助都将不胜感激


这只是一个例子,假设我有很多列,我不想手动替换每一列。

下面的代码替换了文本:

df.columns.str.replace(r"_\(Source:_WaPo\)","")


实际上,从df.columns中,您得到了list,list确实具有replace函数。相反,您必须遍历列名所在的列表,以便轻松替换字符串

df.columns = [column.replace("_(Source:_WaPo","") for column in df.columns]

@Ira您也可以尝试使用df.columns.str.replace''u Source:_WaPo',regex=False,默认情况下regex参数设置为True,并且在regex中。。。是一个捕获组。我会尝试一下,谢谢回复!
df.columns = [column.replace("_(Source:_WaPo","") for column in df.columns]