Попытка сделать логическую маску из списка столбцов в Python - PullRequest
0 голосов
/ 13 октября 2018

Я пытаюсь создать логическую маску из списка столбцов.

print(mydata[evidencenames] == evidences)

mydata [evidencenames] дает pandas dataframe с 3 столбцами, а evidences дает значение для каждого из этих столбцов всписок.но когда я пытаюсь запустить его, он выдает мне эту ошибку:

Недопустимое сравнение трансляции [['Female', 47, 78]] со значениями блока

Какрешить это?

1 Ответ

0 голосов
/ 13 октября 2018

Вы можете использовать pd.DataFrame.isin.Для вашего запроса необходим словарь со значениями списка:

df = pd.DataFrame([['Female', 57, 78], ['Female', 47, 78], ['Female', 47, 75]],
                  columns=['Col1', 'Col2', 'Col3'])

evidencenames = ['Col1', 'Col2', 'Col3']
searchvalues = ['Female', 47, 78]

d = dict(zip(evidencenames, ([i] for i in searchvalues)))

df_masked = df[df[evidencenames].isin(d).all(1)]

print(df_masked)

     Col1  Col2  Col3
1  Female    47    78
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...