【发布时间】:2012-04-08 16:57:53
【问题描述】:
我有以下数据框:
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
我想获取这些数据的一个子集,这样我就只有每个 'obj_id' 的最新(最大 'data_date')'value'。
我想出了一个解决方案,但感觉很脏。我想知道是否有人有更好的方法。我敢肯定我一定错过了一些通过熊猫来做到这一点的简单方法。
我的方法本质上是按如下方式进行分组、排序、检索和重组:
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'))
【问题讨论】: