下面显示的简单数据帧 replace
不起作用。NewPhone
列包含与原始列相同的值。
import pandas as pd
SF = pd.read_csv(r"xxx.csv")
SF['NewPhone'] = SF['Phone'].replace("(",'xxx')
print(SF['NewPhone'])
最佳答案
replace
查找完全匹配(默认情况下,除非您传递 regex=True
但您需要转义括号 - 请参阅@piRSquared 的答案),您需要 str.replace
:
SF['NewPhone'] = SF['Phone'].str.replace("(",'xxx')
这将用新字符串替换所有出现的传入字符串
例子:
In[20]:
df = pd.DataFrame({'phone':['(999)-63266654']})
df
Out[20]:
phone
0 (999)-63266654
In[21]:
df['phone'].str.replace("(",'xxx')
Out[21]:
0 xxx999)-63266654
Name: phone, dtype: object
如果我们尝试
replace
则不会发生匹配:In[22]:
df['phone'].replace("(",'xxx')
Out[22]:
0 (999)-63266654
Name: phone, dtype: object
请参阅@piRSquared 的答案,了解如何让
replace
按预期工作(我不想破坏他的答案)关于python - 替换 Python DataFrame 列中的字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50490540/