Итерация в DataFrame и запись индекса значений, при которых выполняется условие - PullRequest
0 голосов
/ 03 октября 2018

У меня есть данные из 20 строк и 2500 столбцов.Каждый столбец представляет собой уникальный продукт, а строки представляют собой временные ряды, результаты измерений.Поэтому каждый продукт измеряется в 20 раз, и есть 2500 продуктов.

Мои данные определены как DataFrame, и я хочу записать номер строки (индекса), где определенное условие (например: *)1004 *) встречается впервые для всех столбцов (продуктов, так что в конце у меня будет массив.

Я попытался использовать циклы и iterrow, но не выполнил.

PS: я использовал idxmax() для того, чтобы получить идентификатор строки с максимальным значением, но на этот раз я хочу получить индекс ячейки, в которой условие выполняется в первый раз, а затем прерваться.

1 Ответ

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

Просто используйте .gt + .idxmax, который даст вам индекс в первый раз, когда ваше условие выполнено.

import pandas as pd
import numpy as np

np.random.seed(12)
df = pd.DataFrame(np.random.randint(1,5,(20,2500)))

df.gt(3).idxmax()
#0        0
#1        0
#2        4
#3        4
#4        1
#...
#2496     8
#2497     0
#2498     5
#2499     1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...