2017-07-17 67 views
0

我正在清洗熊貓中的大型數據文件。一列('ID')包含字符串和整數的組合。如果某個特定ID的記錄不止一個,用戶慣例就是追加'*'(星號)和序列號。使用正則表達式在熊貓中擦除字符串

我需要向DF('CleanID')添加一列,並複製該ID,或者對於包含星號的任何ID去掉'*'加上所有後續字符。所以:

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

回答

3

使用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 

使用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