在pandas

时间:2017-07-17 23:43:45

标签: python regex pandas

我在Pandas中清理一个大型数据文件。一列(' ID')包含字符串和整数的混合。如果特定ID有多个记录,则用户约定必须附加' *'(星号)和序列号。

我需要在DF中添加一个列(' CleanID')并复制ID,或者对于包含星号的任何ID都会删除' *'加上所有后续字符。所以:

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

1 个答案:

答案 0 :(得分: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