我有这个数据框:
bal:
year id unit period Ativo Circulante Ativo Não-Circulante \
business_id
9564 2012 302 dsada anual 5964168.52 10976013.70
9564 2011 303 dsada anual 5774707.15 10867868.13
2361 2013 304 dsada anual 3652575.31 6608468.52
2361 2012 305 dsada anual 321076.15 6027066.03
2369 2013 306 dsada anual 3858137.49 9733126.02
2369 2012 307 dsada anual 351373.66 9402830.89
8104 2012 308 dsada anual 3503226.02 6267307.01
...
我希望它以每个索引只有去年数据的方式过滤它。它看起来像这样:
year id unit period Ativo Circulante Ativo Não-Circulante \
business_id
9564 2012 302 dsada anual 5964168.52 10976013.70
2361 2013 304 dsada anual 3652575.31 6608468.52
2369 2013 306 dsada anual 3858137.49 9733126.02
8104 2012 308 dsada anual 3503226.02 6267307.01
...
我怎么能这样做?
答案 0 :(得分:1)
你在Pandas中这样做的正如你用英语描述的那样:
bal.sort_values('year').groupby(bal.index).last()
# year id unit period Ativo_Circulante Ativo_Não-Circulante
#business_id
#2361 2012 307 dsada anual 351373.66 9402830.89
#2369 2013 304 dsada anual 3652575.31 6608468.52
#8104 2013 306 dsada anual 3858137.49 9733126.02
#9564 2012 302 dsada anual 5964168.52 10976013.70
答案 1 :(得分:1)
或者你可以通过不保留第一个副本来进行布尔索引,即
bal[~bal.index.duplicated(keep='first')]
输出:
year id unit period Ativo_Circulante Ativo_Não-Circulante business_id 9564 2012 302 dsada anual 5964168.52 10976013.70 2361 2013 304 dsada anual 3652575.31 6608468.52 2369 2013 306 dsada anual 3858137.49 9733126.02 8104 2012 308 dsada anual 3503226.02 6267307.01 In [576]: