如何仅保留包含特定值的连续数字

时间:2019-05-21 14:23:33

标签: python pandas dataframe

我有一个看起来像这样的数据框:

enter image description here

数据框中有几组,每组连续两年以上。例如,在这种情况下,组A包含2000-2005和2010-2015。我要做的是仅保留包含目标年份的连续年份。对于A组,这些值为2010-2015。 B组将被删除,因为连续两个年份中都没有包含2006年的目标年份。结果应如下所示

enter image description here

几天来我一直在思考这个问题,但没有任何线索。任何帮助将不胜感激,非常感谢您的指导。

真诚的

威尔逊

1 个答案:

答案 0 :(得分:1)

因此,就像我们解决您的previous问题一样,这里只需添加由anytransform创建的另一个条件

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]