pandas - получить самое последнее значение определенного столбца, проиндексированного другим столбцом (получить максимальное значение определенного столбца, проиндексированного другим столбцом)

У меня есть следующий кадр данных:

   obj_id   data_date   value
0  4        2011-11-01  59500    
1  2        2011-10-01  35200 
2  4        2010-07-31  24860   
3  1        2009-07-28  15860
4  2        2008-10-15  200200

Я хочу получить подмножество этих данных, чтобы у меня были только самые последние (самые большие 'data_date') ' значение'для каждого 'obj_id'.

Я собрал решение, но оно кажется грязным. Мне было интересно, есть ли у кого-нибудь лучший способ. Я уверен, что мне не хватает простого способа сделать это через панд.

Мой метод состоит в том, чтобы группировать, сортировать, извлекать и рекомбинировать следующим образом:

row_arr = []
for grp, grp_df in df.groupby('obj_id'):
    row_arr.append(dfg.sort('data_date', ascending = False)[:1].values[0])

df_new = DataFrame(row_arr, columns = ('obj_id', 'data_date', 'value'))
17
задан piRSquared 4 January 2017 в 21:59
поделиться