我有一个DataFrame
财务数据:
open high low close volume
date
2012-02-13 0.3476 0.3592 0.3449 0.3530 105990679
2012-02-14 0.3470 0.3528 0.3409 0.3429 131799968
2012-02-15 0.3453 0.3513 0.3365 0.3393 119421442
2012-02-16 0.3358 0.3438 0.3271 0.3438 123189697
2012-02-17 0.3488 0.3588 0.3464 0.3546 167932148
2012-02-20 0.3590 0.3682 0.3577 0.3634 127657258
2012-02-21 0.3630 0.3675 0.3524 0.3575 137016196
我目前将其分组为:
agg = {'open': lambda s: s[0],
'high': lambda s: s.max(),
'low': lambda s: s.min(),
'close': lambda s: s[-1],
'volume': lambda s: s.sum()}
通过
df.groupby(lambda d: d.isocalendar()[:2]).agg(agg)
除了我的数据现在由(year, week)
. 我希望数据按组中最早成员的日期进行索引。我目前的 hack 大致如下:
agg['date'] = lambda s: s[0]
df2 = df.copy()
df2['date'] = df2.index
df2.groupby(lambda d: d.isocalendar()[:2]).agg(agg).set_index('date')
这似乎可行,但是我想知道是否有一种方法可以分离分组和索引,以便组键不会自动成为帧索引。