所以现在我有一个像这样的 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
