python - 替换 Python DataFrame 列中的字符

标签 python pandas dataframe replace

下面显示的简单数据框 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/

相关文章:

python - 多选美汤

python - 如果数字在 Pandas 的指定范围内,如何返回值

python:pandas安装错误

python - 将 pandas.dataframe.pivot_table 与非数字、非唯一值一起使用

python - 在具有不同索引的Python中添加两个数据 Pandas 系列

python - 如何使用混合数据类型值迭代 DF[ 'column']?

python - 拓展新式类

python - 通过添加列组来创建新列

r - 如何使用 R 创建包含聚合均值的列?

python - Pandas 分层列