Отбирать все значения после условия
У меня есть 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.