2016-03-26 22 views
0

Verilen aşağıdaki veriler çerçevesi:Pandalar karakterler arasındaki boşluk eklemek

import pandas as pd 
import numpy as np 
df = pd.DataFrame({'A':['One[P]','Two [N]'], 
}) 

df 
    A 
0 One[P] 
1 Two [N] 

Açık parantez ('[') biri yoksa önce boşluk eklemek istiyorum (çok uzun boylu boyunca kolonu).

istenen sonuçtur: önceden

A 
0 One [P] 
1 Two [N] 

teşekkürler!

cevap

1

Yoksa kullanabilirsiniz:

df.loc[~df.A.str.contains(r' \['), 'A'] = df.A.str.replace('[',' [') 
print df 
     A 
0 One [P] 
1 Two [N] 
1

alternatif olarak, RegEx en kullanabilirsiniz:

In [138]: df.A = df.A.replace(r'([^\s])\[', r'\1 [', regex=True) 

In [139]: df 
Out[139]: 
     A 
0 One [P] 
1 Two [N] 
+0

Belki düşünmek 'df.A.replace (r '([^ \ s]) \ [ ',' [', regex = Doğru)' – jezrael

+0

Yorumunuz için teşekkür ederim, ancak bir karakter kaybederim. Açıkçası ben senin çözüm tercih ederim;) – MaxU

+0

Sorun değil. alternativly 'str.replace' -' df.A.str.replace ('([^ \ s]) \ [', r '\ 1 ['] 'işlevini kullanabilirsiniz. – jezrael

İlgili konular