我在数据框中有一行
names
------
*OP Under A Blood Red Moon
125-201 1006
Apple
Orange
/
1-2-3
我想清理一下,就可以
names
------
Apple
Orange
我想删除
*OP Under A Blood Red Moon
,因为它包含三个以上的单词。
删除125-201 1006
和1-2-3
,因为它们只有数字和符号。
删除/
,因为它少于一个字符。
我有点熟悉如何在python中为字符串执行某些操作,但是如何在pandas数据帧中的整个行中执行此操作。
答案 0 :(得分:1)
我们不会删除行,而是过滤它们并保留所有符合以下条件的行:
具有以下布尔索引:
def num_alpha(s):
return len([c for c in s if c.isalpha()])
df[(df.names.str.count(' ') < 3) & (df.names.apply(num_alpha) > 0) & (df.names.str.len() > 1)]
这个条件,尤其是第一个条件,当然仍然可以改进,但是我想你明白了。
请注意,在熊猫中进行元素逻辑运算时,必须使用括号,请参见boolean indexing。