删除任何列中具有特定值的行

时间:2019-02-06 01:05:24

标签: python pandas dataframe

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

1 个答案:

答案 0 :(得分:1)

您可以对整个DataFrame进行逐元素比较。这是您的操作方式:

df[(df != '?').all(1)]

  fav-animal-sound fav-word fav-celeb
0             meow      foo      cher
1             woof      bar   britney