2017-07-17 2 views
0

Ich bin eine große Datei in Pandas reinigen. Eine Spalte ('ID') enthält eine Mischung aus Strings und Ganzzahlen. Wenn mehr als ein Datensatz für eine bestimmte ID vorhanden ist, wurde als Benutzerkonvention "*" (Sternchen) und eine Sequenznummer angehängt.Scrub eine Zeichenfolge mit Regex in Pandas

Ich muss eine Spalte zum DF hinzufügen ('CleanID') und dupliziert die ID oder, für jede ID, die Sternchen enthält das '*' plus alle nachfolgenden Zeichen. Also:

ID   CleanID 
A1000*1  A1000 
A1000*2  A1000 
B200   B200 
457   457 

Etc

Antwort

3

Verwenden pd.Series.str.replace

df['CleanID'] = df.ID.astype(str).str.replace('\*.*', '') 
df 

     ID CleanID 
0 A1000*1 A1000 
1 A1000*2 A1000 
2  B200 B200 
3  457  457 

Verwenden pd.Series.str.split

df['CleanID'] = df.ID.astype(str).str.split('*').str[0] 
df 

     ID CleanID 
0 A1000*1 A1000 
1 A1000*2 A1000 
2  B200 B200 
3  457  457 
Verwandte Themen