ValueError при извлечении данных формирует фрейм данных, используя логические условия - PullRequest
1 голос
/ 13 января 2020

Я пытаюсь извлечь фрейм данных из встроенного алмаза набора морских данных, который удовлетворяет двум условиям:

  • i) "идеальный" срез
  • ii) цвет 'E'.

Ниже приведен фрагмент кода:

import pandas as pd
import seaborn as sns
diam = sns.load_dataset("diamonds")

cut_col = diam[(diam['cut'] == "Ideal") and (diam['color'] == "E"]

Это дает мне следующую ошибку ValueError:

File "C:\Users\logic\Anaconda3\lib\site-packages\pandas\core\generic.py", line 1555, in __nonzero__
    self.__class__.__name__

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

Но если я заменю логический оператор 'и' с побитовым оператором '&', код работает нормально. Кто-нибудь может объяснить причину этого? Почему логический оператор И не работает в этом случае?

1 Ответ

1 голос
/ 13 января 2020

Это не то же самое, что вы делаете в операторе if, поэтому используйте:

cut_col = diam[(diam['cut'] == "Ideal")&(diam['color'] == "E")]

Для получения дополнительной информации посмотрите логическое индексирование .

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