我有一个像这样的DataFrame:
df = pd.DataFrame({'fav-animal-sound' : ['meow', 'woof','quack', 'moo', '?'],
'fav-word' : ['foo', 'bar','?', 'ho', 'hum'],
'fav-celeb' : ['cher', 'britney','bono', '?', 'big_bird']})
在此数据集中,
'?'
是几列中用于未知值的通用占位符。我要删除这些值。一次只能处理一列:
valid_entries = df.loc[:, "fav-celeb"] != '?'
但这不起作用:
valid_entries = df.loc[:, "fav-celeb", "fav-word", "fav-animal-sound"] != '?'
我想将
valid_entries
标志应用于没有'?'的每一行。在任何选定的列中,然后使用类似以下的命令将其删除:df = df.loc[valid_entries]
最佳答案
您可以对整个DataFrame进行逐元素比较。这是您的操作方式:
df[(df != '?').all(1)]
fav-animal-sound fav-word fav-celeb
0 meow foo cher
1 woof bar britney
关于python - 删除任何列中具有特定值的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54545319/