我必须清理数据库
Id FirstName LastName
12 Jannie Pretorious
15 Elsa Van Niekerk
14 Koos SC$ 4 MMV Extraction SHift B
我想删除不是姓氏的值,在本例中为id 14:Koos SC $ 4 ...
如果单元格值中有两个以上的空格,我可以确定错误的姓氏。
我想遍历df并将所有值(两个以上的空格)替换为”。
我已经看过这个问题Conditional Replace Pandas,但这并没有帮助我。
预期输出:
Id FirstName LastName
12 Jannie Pretorious
15 Elsa Van Niekerk
14 Koos
答案 0 :(得分:2)
将Series.mask
与Series.str.count
一起使用:
df['LastName'] = df['LastName'].mask(df['LastName'].str.count(' ') > 2, '')
print (df)
Id FirstName LastName
0 12 Jannie Pretorious
1 15 Elsa Van Niekerk
2 14 Koos
详细信息:
print (df['LastName'].str.count(' '))
0 0
1 1
2 5
Name: LastName, dtype: int64
替代:
df['LastName'] = df['LastName'].mask(df['LastName'].str.split().str.len().sub(1) > 2, '')