У меня есть фреймворк, который выглядит примерно так (обратите внимание, что это пример, мой фактический фреймворк содержит тысячи строк с сотнями групп)
pd.DataFrame({'a':['A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'],
'year':[2018, 2019, 2020, 2018, 2020, 2018, 2019, 2020],
'c':[1, 2, 4, 2, 4, 4, 4, 3]})
a year c
0 A 2018 1
1 A 2019 2
2 A 2020 4
3 B 2018 2
4 B 2020 4
5 C 2018 4
6 C 2019 4
7 C 2020 3
Мне нужно проверить следующие условия для каждой группы в столбце 'a':
- - это одна строка на каждый год (ie. 2018, 2019, 2020) существует
- увеличивается ли значение в столбце 'c' из года в год ie. - это значение для 2020 года выше, чем для 2019 года, чем для 2018
, если оба условия истинны. Мне нравится устанавливать значение «ИСТИНА» в столбце «d» для этой группы
a year c d
0 A 2018 1 TRUE
1 A 2019 2 TRUE
2 A 2020 4 TRUE
3 B 2018 2 FALSE
4 B 2020 4 FALSE
5 C 2018 4 FALSE
6 C 2019 4 FALSE
7 C 2020 3 FALSE
в моем примере только группа A удовлетворяет обоим условиям. В группе B нет данных за 2019 год, а в группе C значения не увеличиваются от года к году.
Я пробовал groupby, но ничего не добился. Я думаю, это требует iterows, но не знаю, с чего начать.