简体   繁体   English

仅获取在熊猫中给定年份的任何一年重复的数据

[英]Get only data that are repeated any one of the given year in pandas

Below is the Raw Data.以下是原始数据。 I want only those event which will repeat in given set of list of years.我只想要那些将在给定的一组年份列表中重复的事件。 Eg [2012,2013].例如 [2012,2013]。 So now it should only get data if event is repeated in one of the given year in the list.所以现在它应该只在列表中给定年份的某一年重复事件时才获取数据。

    Event   Year
Event 1     2012
Event 1     2013
Event 1     2014
Event 1     2015
Event 2     2012
Event 2     2013
Event 3     2014
Event 3     2015
Event 3     2014
Event 4     2012
Event 4     2015
Event 5     2013

I want below output.我想要下面的输出。

    Event   Year
Event 1     2012
Event 1     2013
Event 1     2014
Event 1     2015
Event 2     2012
Event 2     2013
Event 4     2012
Event 4     2015
Event 5     2013

I would think two isin operations:我认为有两个isin操作:

valid_events = df.loc[df.Year.isin([2012,2013]), 'Event']
df.loc[df.Event.isin(valid_events)]

Output:输出:

      Event  Year
0   Event 1  2012
1   Event 1  2013
2   Event 1  2014
3   Event 1  2015
4   Event 2  2012
5   Event 2  2013
9   Event 4  2012
10  Event 4  2015
11  Event 5  2013

You can try groupby and filter你可以试试groupbyfilter

lst = [2012, 2013]
out = df.groupby('Event').filter(lambda g: g['Year'].isin(lst).any())
print(out)

      Event  Year
0   Event 1  2012
1   Event 1  2013
2   Event 1  2014
3   Event 1  2015
4   Event 2  2012
5   Event 2  2013
9   Event 4  2012
10  Event 4  2015
11  Event 5  2013

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM