2017-04-07 7 views
1

私が開いた生データを用いパンダデータフレームの行の文字を置き換えるには?

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

関連する問題