我有一个像这样的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/

10-09 12:43