Отбирать все значения после условия

У меня есть dataframe, по которому мне нужно пройтись и отобрать все события, случившиеся после определенного момента.

Пример:

Pep = [ 
    ['rre', "123", "cow"], 
    ['rrt', "2331", "dogs"], 
    ['rrt', "23", "dogs"],
    ['tyyh', "25546", "fly"],
    ['eer', "345", "flag"], ] 
df = pd.DataFrame(Pep)

Мне нужно написать цикл, который выдаст мне все значения после 'rrt', "23". То есть, в результате я должен получить два значения:

    ['tyyh', "25546", "fly"],
    ['eer', "345", "flag"]

Я уже много что перепробовал, но мой цикл не работает:

idd=[]
for col_name, data in df.iterrows():
    if data[1]=='23':
        pass    
    idd.append(data)

Ответы (1 шт):

Автор решения: CrazyElf

Цикл не нужен, можете получить результат прямо в виде нового DataFrame:

df1 = df.iloc[df[(df[0] == 'rrt')&(df[1] == '23')].index[0]+1:]
  • Находим в датафрейме строки, удовлетворяющие условию
  • Берём индекс первой такой строки
  • Делаем срез датафрейма начиная с индекса, следующего за найденным

В df1 получается:

       0        1      2
3   tyyh    25546    fly
4    eer      345   flag

Но если хотите всё же цикл, то можете дальше итерироваться по получившемуся df1.

→ Ссылка