Python 如何替换数据帧行中的字符?

Python 如何替换数据帧行中的字符?,python,dataframe,replace,Python,Dataframe,Replace,我使用pandas打开原始数据 df=pd.read_cvs(file) 以下是我的数据框架的一部分: 37280 7092|156|Laboratory Data|A648C751-A4DD-4CZ2-85 47981 7092|156|Laboratory Data|Z22CD01C-8Z4B-4ZCB-8B 57982 7092|156|Laboratory

我使用pandas打开原始数据

df=pd.read_cvs(file)
以下是我的数据框架的一部分:

37280  7092|156|Laboratory Data|A648C751-A4DD-4CZ2-85                               
47981  7092|156|Laboratory Data|Z22CD01C-8Z4B-4ZCB-8B                               
57982  7092|156|Laboratory Data|C12CE01C-8F4B-4CZB-8B
我想将所有管道(
“|”
)替换为选项卡(
“\t”
) 所以我试着:

df.replace('|','\t')
但它从来都不起作用。我怎么能这样做?
非常感谢

只需将变量设置为自身:
df=df.replace('|','\t')

默认情况下,数据帧上的
replace
方法用于替换与提供的字符串完全匹配的值;您需要指定
regex=True
来替换模式,因为
|
是regex中的特殊字符,所以这里需要转义:

df1 = df.replace("\|", "\t", regex=True)
df1
#       0                                                   1
#0  37280   7092\t156\tLaboratory Data\tA648C751-A4DD-4CZ2-85
#1  47981   7092\t156\tLaboratory Data\tZ22CD01C-8Z4B-4ZCB-8B
#2  57982   7092\t156\tLaboratory Data\tC12CE01C-8F4B-4CZB-8B
如果我们打印单元格,选项卡将按预期打印:

print(df1[1].iat[0])
# 7092  156 Laboratory Data A648C751-A4DD-4CZ2-85

是的,它有效!问题来自于特殊正则表达式的逃逸。谢谢很高兴有帮助!