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

时间:2017-04-07 15:45:10

标签: 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 Data|C12CE01C-8F4B-4CZB-8B

我想将所有竖线('|')替换为标签('\t') 所以我试过了:

df.replace('|','\t')

但它永远不会奏效。我怎么能这样做? 非常感谢!

2 个答案:

答案 0 :(得分:2)

默认情况下,数据框上的replace方法用于替换与提供的字符串完全匹配的值;您需要指定regex=True来替换模式,并且由于|是正则表达式中的特殊字符,因此需要转义:

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

答案 1 :(得分:1)

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