Skip to main content
 首页 » 编程设计

python之为 Pandas 中的每个索引选择最后一年

2025年05月04日16grandyang

我有这个数据框:

         score    year ... 
index     
0        123      2015 
0        5354     2016 
0        4314     2014 
12       4542     2018 
12       4523     2017 
13       123      2014 
13       123      2012 
13       231      2016 
... 

我只想为每个索引选择最后一年,所以它看起来像这样:

         score    year ... 
index     
0        123      2016 
12       4542     2018 
13       231      2016 
... 

请您参考如下方法:

选项 1:

In [188]: df.groupby(level=0, group_keys=False).apply(lambda x: x.nlargest(1, 'year')) 
Out[188]: 
        score  year 
index              
0       5354  2016 
12      4542  2018 
13       231  2016 

选项 2:

In [193]: df.sort_values('year', ascending=False).groupby(level=0, group_keys=False).head(1) 
Out[193]: 
       score  year 
index              
12      4542  2018 
0       5354  2016 
13       231  2016