Как сохранить только последовательные числа, содержащие определенное значение - PullRequest
0 голосов
/ 21 мая 2019

У меня есть датафрейм, который выглядит так:

enter image description here

В кадре данных есть несколько групп, и каждая группа содержит более двух последовательных лет. Например, в этом случае группа А содержит 2000-2005 и 2010-2015 годы. Что я хочу сделать, так это сохранить только те годы подряд, которые содержат целевой год. Для группы А эти значения будут 2010-2015. Группа B будет удалена, поскольку ни одна из последовательных групп не содержит целевой 2006 год. Результат должен выглядеть следующим образом

enter image description here

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

С уважением

Wilson

1 Ответ

1 голос
/ 21 мая 2019

Так же, как мы решили вашу предыдущую проблему, здесь просто нужно добавить другие условия, созданные any и transform

s1=df.g.groupby([df.g,df.Year.diff().ne(1).cumsum()]).transform('count').ne(1)
s2=df.Year.eq(df['Target Year']).groupby([df.g,df.Year.diff().ne(1).cumsum()]).transform('any')
df[s1&s2]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...