pandas series / df.replace-传递字典时不能再替换子字符串(版本问题?.24.1)

时间:2019-02-18 19:42:40

标签: python pandas

____ ### update:降级到.23.4产生了预期的结果-.24和.24.1产生了以下结果。其他人看到了吗?关于更新以下语法以获得所需结果的任何建议?谢谢!


series.replace的代码不再与以前的熊猫版本相同,并且在查找文档中的更改和/或调整代码以适应我时遇到了麻烦(我最近升级到了.24.1)

我通常通过s.replace:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.replace.html

通过字典来搜索和替换df给定列(或系列)中的子字符串。

过去,大熊猫会替换出现在字符串中间/结尾的子字符串,但现在看来只有在模式开始时才起作用。

我看到文档提到re.sub之后传递了一个字典并使用了正则表达式,但是当我尝试这样做时,我得到了想要的结果(不是一只大熊猫产出的)。将不胜感激a)关于更改的任何参考和/或b)帮助调整代码,使其与以下re.sub示例类似-谢谢!

import pandas as pd
import re   

s = pd.Series(['hello there', 'well hello then'])
print(s)

'''OUTPUT
0        hello there
1    well hello then
dtype: object
'''

s.replace({'hello' : 'goodbye'}, regex=True, inplace=True)

print(s)

'''OUTPUT
0      goodbye there
1    well hello then  #<-not replaced
dtype: object
'''

x = re.sub('hello','goodbye', 'hello there')
print(x) 
#out: goodbye there

x = re.sub('hello','goodbye', 'well hello then')
print(x)
#out: well goodbye then    #<-expected result

0 个答案:

没有答案