2017-04-07 518 views
1

我打开的原始数据采用熊猫如何替换dataframe中的字符?

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') 

但它从来没有工作。我怎么能这样做? 非常感谢!

回答

1

默认数据帧上的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

是的,它的工作原理!问题来自特殊正则表达式的漏失。谢谢! – user815408

+0

很高兴帮助! – Psidom

1

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

+0

不行不行。管道仍然存在 – user815408