根据索引值对数据帧进行分组

时间:2018-09-12 02:13:32

标签: python pandas

我有一个按日期索引的每周股票价格回报的数据框,如下所示。

            FTSE_350    SP_500
2005-01-14 -0.004498 -0.001408
2005-01-21  0.001287 -0.014056
2005-01-28  0.011469  0.002988
2005-02-04  0.016406  0.027037
2005-02-11  0.015315  0.001887 

我想返回一个索引在一定间隔内的行的数据帧,比方说所有日期都在2005年1月。我知道我可以通过将索引变成“日期”列来做到这一点,但是我想知道是否有直接方法可以做到这一点。

1 个答案:

答案 0 :(得分:5)

是的,比做专栏还要简单!

使用.loc函数,然后将日期切出,例如:

print(df.loc['2005-01-01':'2005-01-31'])

输出:

            FTSE_350    SP_500
2005-01-14 -0.004498 -0.001408
2005-01-21  0.001287 -0.014056
2005-01-28  0.011469  0.002988

顺便说一句,如果索引是对象,请执行:

df.index = pd.to_datetime(df.index)

在一切之前。

正如@Peter所说的,最好的是:

print(df.loc['2005-01'])

也输出:

            FTSE_350    SP_500
2005-01-14 -0.004498 -0.001408
2005-01-21  0.001287 -0.014056
2005-01-28  0.011469  0.002988