Python 替换 Dataframe 字符串中的整个值而不是子字符串

标签 python regex pandas replace

如果整个字符串等于另一个字符串,我正在尝试替换数据框中的字符串。我不想替换子字符串。

所以:

如果我有 df:

 Index  Name       Age
   0     Joe        8
   1     Mary       10
   2     Marybeth   11

我想在整个字符串将“Mary”与“Amy”匹配时替换“Mary”,所以我得到

 Index  Name       Age
   0     Joe        8
   1     Amy        10
   2     Marybeth   11

我正在做以下事情:

df['Name'] = df['Name'].apply(lambda x: x.replace('Mary','Amy'))

我通过四处搜索了解到 replace 的默认设置 regex=Falsereplace 应该看起来数据框中的整个值是“Mary”。相反,我得到了这个结果:

 Index  Name       Age
   0     Joe        8
   1     Amy        10
   2     Amybeth   11

我做错了什么?

最佳答案

replace + dict 是要走的路(对于 DataFrame,您正在使用 Series.str.replace)

df['Name'].replace({'Mary':'Amy'})
Out[582]: 
0         Joe
1         Amy
2    Marybeth
Name: Name, dtype: object
df['Name'].replace({'Mary':'Amy'},regex=True)
Out[583]: 
0        Joe
1        Amy
2    Amybeth
Name: Name, dtype: object

注意它们是不同的

系列: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.str.replace.html

数据框: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.replace.html

关于Python 替换 Dataframe 字符串中的整个值而不是子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48214863/

相关文章:

python - 连接变量和字符串Python脚本

python - PyQt QProgressBar 垂直文本对齐问题

.net - .NET 正则表达式引擎是否支持内联模式修饰符?

python - HTTPServer.shutdown 返回但套接字仍然打开

regex - 我可以使用交替将多少个正则表达式链接在一起?

python - 查找可能后跟小数点的所有数字

python - 比较两列并在 Pandas 中获得唯一值

python - Python Pandas 中 R 的 tapply() 的等价物

python - Pandas 堆积条形图中元素的排序

javascript - 将变量从js代码传递到db中的flask或类似的东西