我有一个具有以下结构的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-01
和2014-09-23
答案 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