Выборка строк с помощью значений из списка
Необходимо выбрать строки которые бы не соответствовали значению из списка
import pandas as pd
import numpy as np
pd.options.display.expand_frame_repr = False
df = pd.read_excel(r'R:\TEST.xlsx')
s = [u'Проектируемый']
print df.loc[df[u'СТАТУС ОБЪЕКТА']!= s]
Выдаёт ошибку: ValueError: Arrays were different lengths: 3 vs 1
Как правильно прописывать выборку с использованием значений из списка ?
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Ошибка у вас выходит потому, что если в s у вас список (пусть и из одного элемента), то Pandas не понимает, как вы хотите сравнивать два списка разного размера между собой.
Проверку на не вхождение в список нужно делать так:
s = [u'Проектируемый',u'Готовый',u'Приемка']
print df.loc[~df[u'СТАТУС ОБЪЕКТА'].isin(s)]
isin- проверка на вхождение~- логическое отрицание условия
P.S. Python 2 устарел и больше не поддерживается, переходите на Python 3.