获取以python数据帧为条件的唯一行

获取以python数据帧为条件的唯一行,python,pandas,Python,Pandas,我有一个这种形式的数据框架。然而,在我的最后一个数据帧中,我只希望得到一个每年具有唯一值的数据帧 Name Org Year 4 New York University doclist[1] 2004 5 Babson College doclist[2] 2008 6 Babson College doclist[5] 2008 因此,理想情况下,我的数

我有一个这种形式的数据框架。然而,在我的最后一个数据帧中,我只希望得到一个每年具有唯一值的数据帧

     Name                    Org             Year
4    New York University     doclist[1]  2004
5    Babson College          doclist[2]  2008
6    Babson College          doclist[5]  2008
因此,理想情况下,我的数据帧将看起来像这样

4    New York University     doclist[1]  2004
5    Babson College          doclist[2]  2008
我到目前为止所做的一切。我每年都使用groupby,而且我似乎能够每年获得唯一的名称。但是,我被卡住了,因为我丢失了所有其他信息,例如“Org”列。谢谢你的建议

#how to get unique rows per year?
q = z.groupby(['Year'])

#print q.head()
#q.reset_index(level=0, drop=True)

q.Name.apply(lambda x: np.unique(x))
为此,我得到以下输出。如何包括其他列信息以及删除次要索引(例如:6、68、66、72)


如果您只想保留每个名称的第一个条目,可以使用
drop\u duplicates
注意,这将根据数据的排序方式保留第一个条目,因此如果您想保留特定条目,您可能需要先排序

In [98]: q.drop_duplicates(subset='Name')
Out[98]: 
                      Name         Org  Year
0      New York University  doclist[1]  2004
1           Babson College  doclist[2]  2008
In [98]: q.drop_duplicates(subset='Name')
Out[98]: 
                      Name         Org  Year
0      New York University  doclist[1]  2004
1           Babson College  doclist[2]  2008