所以现在我有一个像这样的Pandas DF:
Name Year Label
Jeff 2018 0
Jeff 2019 1
Matt 2018 0
John 2018 0
Mary 2018 1
Mary 2019 1
我想保留具有2018年和2019年的每个唯一名称的所有行。
结果应如下所示:
Name Year Label
Jeff 2018 0
Jeff 2019 1
Mary 2018 1
Mary 2019 1
马特(Matt)和约翰(John)被删除,因为他们没有2018和2019年。
任何想法,将不胜感激!
使用crosstab
选择带有两年的所有名称,然后使用isin
s=pd.crosstab(df.Name,df.Year)[[2018,2019]].eq(1).sum(1)==2
df.loc[df.Name.isin(s.index[s])]
Out[463]:
Name Year
0 Jeff 2018
1 Jeff 2019
4 Mary 2018
5 Mary 2019
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句