I've got a dataframe of the form:
Contract Date
201501 2014-04-29 1416.0
2014-04-30 1431.1
2014-05-01 1430.6
2014-05-02 1443.9
2014-05-05 1451.6
2014-05-06 1461.4
2014-05-07 1456.0
2014-05-08 1441.1
2014-05-09 1437.8
2014-05-12 1445.2
2014-05-13 1458.2
2014-05-14 1487.6
2014-05-15 1477.6
2014-05-16 1467.9
2014-05-19 1484.9
2014-05-20 1470.5
2014-05-21 1476.9
2014-05-22 1490.0
2014-05-23 1473.3
2014-05-27 1462.5
2014-05-28 1456.3
2014-05-29 1460.5
201507 2014-05-30 1463.5
2014-06-02 1447.5
2014-06-03 1444.4
2014-06-04 1444.7
2014-06-05 1455.9
2014-06-06 1464.0
当合同和日期是整数(int
)和日期时间(datetime64
)类型的索引时。
我想要的是选择一个日期范围。实现方法如下:
df.reset_index('Contract', drop=True).loc['2014-09']
但我不喜欢这样做,因为它会丢失索引/使用起来不太愉快(我要做很多这样的事情)。
我认为我应该可以这样做:
df.loc[:,'2014-09']
要恢复2014年9月的所有数据。实际上,这是不起作用的。我只能通过选择单个日期来执行操作:
df.loc[:,'2014-09-02']
为什么我的多重索引切片器不起作用?
df.loc[idx[:, '2013-05':], :]
,否则我不确定所有行将如何返回。正如MaxU建议的那样,也许您可以在较小的数据集上重现此问题,以便我们可以进一步调查? - Alex Rileydf.loc[(slice(None), '2014-05'), :]
能够正常工作而df.ix[(slice(None), '2014-05'), :]
不能吗? - MaxU - stand with Ukraine