我在Pandas中清理一个大型数据文件。一列(' ID')包含字符串和整数的混合。如果特定ID有多个记录,则用户约定必须附加' *'(星号)和序列号。
我需要在DF中添加一个列(' CleanID')并复制ID,或者对于包含星号的任何ID都会删除' *'加上所有后续字符。所以:
ID CleanID
A1000*1 A1000
A1000*2 A1000
B200 B200
457 457
等
答案 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