2016-08-24 5 views
3

Meine Frage ist, wie ich die re Saiten ersetzen können, die in einem Datenrahmen enthalten:Regex mit Spalten Pandas

, wenn ich die re.sub() verwenden, ist es mir ein Fehler gibt:

p = re.compile('New') 
p.sub('old', df['Col1']) 

Auch ich habe versucht, die for-Schleife, aber das löschte war unerwartet und den Wert der ersten Zeile in allen anderen Zeilen anzeigt:

for i in df['Col1']: 
    p.sub('old', i) 
    print(i) 

ich bin sicher, dass ich etwas fehle.

Antwort

2

Ich glaube, Sie str.replace verwenden können, die auch mit regex funktioniert:

df = pd.DataFrame({'Col1':['sss old','dd','old']}) 
print (df) 
     Col1 
0 sss old 
1  dd 
2  old 

df.Col1 = df.Col1.str.replace('old','new') 
print (df) 
     Col1 
0 sss new 
1  dd 
2  new 
+0

Danke @jezrael der Code funktioniert. –

+0

Eine weitere Frage: wann ich re mit dem str.startswith verwenden möchte. Es gibt alle Werte false.i.e: df.col1.str.startswith ('(N | n) ew'), fehlt mir etwas? –

+0

[str.startswith] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.str.startswith.html) funktioniert nicht mit Regex. – jezrael