2015-02-03 2 views
0

Я пытаюсь создать новый фрейм данных, индексируя только значения в столбце «diff». Я хочу использовать два сравнения, но он не работает.Как использовать несколько сравнений при индексировании столбца в pandas DataFrame

Это мой код:

df[(df.diff1 <= -120) or (df.diff1 >= 120)] 

Если я печатаю df[df.diff <=120] это дает мне то, что я ожидал, но когда я добавляю второе сравнение я получаю и ошибка, которая говорит, "ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()."

Я смущен как изменить синтаксис.

ответ

2

Использование | для поэлементно logical-or из двух серий, а не or:

df[(df.diff1 <= -120) | (df.diff1 >= 120)] 

(df.diff1 <= -120) or (df.diff1 >= 120) пытается преобразовать (df.diff1 <= -120) и (df.diff1 >= 120) в BOOLS. Pandas follows the NumPy convention of raising an error при попытке конвертировать NDFrame (например, Series) в одно логическое значение.

Смежные вопросы