我必须清理数据库
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
最佳答案
使用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, '')
关于python - 如果值有两个以上空格,Pandas 会替换 df 中的行值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59983587/