如果值中的空格超过两个,则熊猫替换df中的行值

时间:2020-01-30 10:12:41

标签: python pandas

我必须清理数据库

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      

1 个答案:

答案 0 :(得分:2)

Series.maskSeries.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, '')