![](/img/trans.png)
[英]Pandas dataframe how to remove rows conditioned on the length of rows being smaller than a number, given a unique column value?
[英]Getting unique rows conditioned on year pandas python dataframe
我有这种形式的数据框。 但是,在我的最终数据框中,我只想获得一个每年具有唯一值的数据框。
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,而且似乎可以按年获得唯一的名称。 但是,我被困住了,因为我丢失了所有其他信息,例如“组织”列。 咨询表示赞赏!
#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)
Year
2008 6 Babson College
68 European Economic And Social Committee
66 European Union
72 Ewing Marion Kauffman Foundation
如果您要做的只是保留每个名称的第一个条目,则可以使用drop_duplicates
注意,这将保留第一个条目,但drop_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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.