我有一个这样的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]
答案 0 :(得分:1)
您可以对整个DataFrame进行逐元素比较。这是您的操作方式:
df[(df != '?').all(1)]
fav-animal-sound fav-word fav-celeb
0 meow foo cher
1 woof bar britney