我有时间系列数据集。我可以通过以下代码从3月到4日选择数据:
df[(df.index.month >=3) & (df.index.month<=5)]
但问题是如何从march-15
到may-15
选择数据?
任何帮助将受到高度赞赏。
我的数据框如下:
2000-02-25 0.01
2000-02-26 0.03
2000-02-27 1.0
2000-02-28 1.52
2000-02-29 0.23
2000-03-01 0.45
2000-03-05 2.15
2000-03-06 1.75
.................
.................
答案 0 :(得分:2)
您可以使用帮助Series
s
,其中所有年份都被替换为相同 - 例如2000
:
print (df)
A
2001-02-25 0.01
2002-02-26 0.03
2003-02-27 1.00
2004-02-28 1.52
2005-03-29 0.23
2006-03-01 0.45
2007-03-05 2.15
2008-03-06 1.75
s = pd.Series(df.index.map(lambda x: pd.datetime(2000, x.month, x.day)))
mask = (s.dt.date > pd.datetime(2000,3,15).date()) &
(s.dt.date < pd.datetime(2000,5,15).date())
mask.index = df.index
print (mask)
2001-02-25 False
2002-02-26 False
2003-02-27 False
2004-02-28 False
2005-03-29 True
2006-03-01 False
2007-03-05 False
2008-03-06 False
dtype: bool
df = df[mask]
print (df)
A
2005-03-29 0.23