Удалить строки, которые имеют определенное значение в любом столбце - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть 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 голосов
/ 06 февраля 2019

Вы можете выполнить поэлементное сравнение для всего DataFrame.Вот как вы это сделаете:

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

  fav-animal-sound fav-word fav-celeb
0             meow      foo      cher
1             woof      bar   britney
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...