Не удается удалить строки с конкретными условиями в пандах - PullRequest
0 голосов
/ 19 мая 2019

У меня (снова) проблема с обработкой фрейма данных в пандах.

Четыре столбца: Name, Sample, A1_TOP, A2_TOP.

Иногда в A1_TOP или A2_TOP у меня есть пробелы. Пробелы - это символы «-» или «0». Я написал строку кода для удаления строк, содержащих пробелы формы таблицы.

a = мой фрейм данных.

Мой код:

a = a.loc[(a['A1_TOP'] != '-') | (a['A2_TOP'] != '-')]
a = a.loc[(a['A1_TOP'] != '0') | (a['A2_TOP'] != '0')]

Но когда я запускаю его, я не получаю ошибок. Результатом является то, что датафрейм все еще содержит пробелы. Вчера у меня были другие файлы для обработки, и эта часть кода работает нормально. Не сегодня.

Например, у меня есть разрыв в первой строке во фрейме данных:

Name Sample A1_TOP A2_TOP
Adam  Smith   -     B    

И этот ряд следует удалить. Но это не так. type(df['A1_TOP][0]) = str так что это не проблема с типом.

Может кто-нибудь сказать мне, что не так с этим кодом?

EDIT: Если я разделю команду так:

a = a.loc[a['A1_TOP'] != '-']
a = a.loc[a['A2_TOP'] != '-']

Работает ... а почему нет?

1 Ответ

1 голос
/ 19 мая 2019

Должно ли это быть &?

a = a.loc[(a['A1_TOP'] != '-') & (a['A2_TOP'] != '-')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...