我有一个按日期索引的每周股票价格回报的数据框,如下所示。
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月。我知道我可以通过将索引变成“日期”列来做到这一点,但是我想知道是否有直接方法可以做到这一点。
答案 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