我有每个实体的时间序列数据:大熊猫index.asof与多指标
id event_date value
1 2013-12-21 3.82
1 2013-12-22 2.47
1 2013-12-25 2.13
1 2014-01-03 3.92
1 2014-01-04 2.48
2 2014-10-16 3.96
2 2014-10-17 3.61
2 2014-10-29 2.59
2 2014-11-05 3.64
2 2014-11-15 2.85
我已经把它放在一个数据帧具有多指标:
value
id event_date
1 2013-12-21 3.82
2013-12-22 2.47
2013-12-25 2.13
2014-01-03 3.92
2014-01-04 2.48
2 2014-10-16 3.96
2014-10-17 3.61
2014-10-29 2.59
2014-11-05 3.64
2014-11-15 2.85
我想在每个id的系列中找到任意中断前的最新日期(比如2014-10-31或2014-09-30之前)。 index.asof或Series.asof似乎是我想要的,但我无法弄清楚如何在多个索引中使用它。对于一个日期“2014-10-30”我想这样的输出:
id event_date
1 2014-01-04 00:00:00
2 2014-10-29 00:00:00
我可以遍历第一级索引那里,但它似乎应该有一个更好的更pandonic方式(完整数据设置非常大),我只是想念它。
In [10]: for idx in df.index.levels[0]:
....: print idx, df.loc[idx].index.asof('2014-10-30')
....:
1 2014-01-04 00:00:00
2 2014-10-29 00:00:00
没有理由的数据必须是在这个多指标结构,只是似乎很有道理给予我会为每个ID的时间序列。时间排序,没有重复。
版本: 大熊猫:0.15.0 numpy的:1.9.0
谢谢。我的问题并不完全清楚。我试图在任意中断之前找到最新的日期。因此,例如,10月份的最近日期结束。编辑这个问题来澄清。 – 2014-11-21 19:43:24
哎呀,错过了,但@ Primer的帮助你。 – 2014-11-22 19:56:50