Pandas dataframe: Найти место, где значение меняется с x на y - PullRequest
0 голосов
/ 10 ноября 2018

Я пытаюсь найти точки в кадре данных, где данные достигают максимального значения, удерживают его некоторое время, а затем снова опускаются (см. Изображение ниже).

enter image description here

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

ent = data.loc[data['ESC_Command'] == 1600 and data['ESC_Command'].shift() < 1600]
lve = data.loc[data['ESC_Command'] == 1600 and data['ESC_Command'].shift(-1) < 1600]

Но когда я запускаю это, я получаю следующую ошибку.

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

Если я выполняю «равный 1600» или «<1600» со сдвигом, я получаю ожидаемый логический список, но добавление логического оператора приводит меня к этой ошибке. Неужели никто не может пролить свет на то, что мне не хватает? </p>

Заранее спасибо!

1 Ответ

0 голосов
/ 10 ноября 2018

Вы захотите использовать побитовый оператор (&) для объединения ваших масок ((data['ESC_Command'] == 1600) & (data['ESC_Command'].shift() < 1600)).

and является логическим оператором и не может сравнивать ряды, поэтому ValueError.


Кроме того, вы можете использовать data['ESC_Command'].max() для динамического поиска максимального значения в столбце.

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