[英]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
你可以试试
groupby
和filter
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.