2017-05-10 3 views
0

Ich habe ein Datenframe mit einer Spalte namens "Qualifikation". Es hat Werte wie:Pandas: Ersetzen Sie Text der gesamten Zelle mit Regex

b.tech       
graduate       
btech        
hsc        
degree        
12th pass       
pharm.d 2nd year     
b pharm       
pursuing b pharm     
ssc        
b.pharm       
mba        
bsc        
no         
student       
pharm.d 3rd year     
b.com        
bcom        
ug         
diploma       
b tech        

Ich mag durch Ersetzen bestimmte Werte mit anderem Text der Daten konsistent machen. Zum Beispiel b tech oder b.tech oder bachelors in X wird Graduate. Oder Masters, M.Com, usw. mit Post Graduate. Wie mache ich das mit Regex?

Antwort

1

Sie können es auf diese Weise tun:

to_replace = [r'SearchRegEx1', r'SearchRegEx2', ...] 
value = [r'ReplaceRegEx1', r'ReplaceRegEx2', ...] 

und dann

df['col_name'] = df['col_name'].replace(to_replace, value, regex=True) 

Demo:

In [124]: to_replace = [r'btech|b[\.\s]+\w+|bachelors\b.*', r'Masters|M.Com'] 
    ...: value = ['Graduate', 'Post Graduate'] 
    ...: 

In [125]: df['col'] = df['col'].replace(to_replace, value, regex=True) 

In [126]: df 
Out[126]: 
     col 
0 Graduate 
1 graduate 
2 Graduate 
3  hsc 
4  degree 
5  12th 
6 pharm.d 
7   b 
8 pursuing 
9  ssc 
10 Graduate 
11  mba 
12  bsc 
13  no 
14 student 
15 pharm.d 
16 Graduate 
17  bcom 
18  ug 
19 diploma 
20   b 
+0

Dank. Ich werde es ausprobieren. –

Verwandte Themen