Pandas Groupby将功能应用于关卡

时间:2014-10-01 14:33:41

标签: python pandas

我有一个具有以下结构的pandas groupby对象:

SETTLE_DATE  DATE
2014-09-23   2014-09-19    0.000091
             2014-09-22    0.000163
2014-10-01   2014-09-29   -0.000002
2014-11-13   2014-08-29    0.007774
             2014-09-01    0.008993
             2014-09-02    0.010048
             2014-09-03    0.009496
             2014-09-04    0.015213
             2014-09-05    0.015772
             2014-09-08    0.016733
             2014-09-09    0.018464
             2014-09-10    0.018361
             2014-09-11    0.017473
             2014-09-12    0.017884
             2014-09-15    0.017860
             2014-09-16    0.017706
             2014-09-17    0.016628
             2014-09-18    0.017866
             2014-09-19    0.020719
             2014-09-22    0.021473
             2014-09-23    0.020296
             2014-09-24    0.022314
             2014-09-25    0.024007
             2014-09-26    0.026014
             2014-09-29    0.026411

如何为每个DATE减去上一个DATE的第一个SETTLE_DATE

例如,我想从2014-08-29 .007774中减去2014-09-29 0.026411,并对结算日期2014-10-012014-09-23

重复同样的事情

1 个答案:

答案 0 :(得分:3)

作为建议,如果您将数据粘贴为易于复制粘贴的格式(例如df.to_dict()),您可能会得到更快的响应。

假设您有一个系列s,其中包含MultiIndex和您显示的两个级别,您可以将第一级分组并应用'first' / 'last'聚合来获取值想。

In [136]: s.groupby(level=0).agg('last') - s.groupby(level=0).agg('first')
Out[136]: 
SETTLE_DATE
2014-09-23     0.000072
2014-10-01     0.000000
2014-11-13     0.018637
Name: VALUE, dtype: float64