2016-10-18 11 views
1

私はシリーズデータセットの時間を持っています。 Pythonの日付と時刻によるデータフレームのインデックスとスライス

df[(df.index.month >=3) & (df.index.month<=5)] 

しかし、問題は may-15march-15からデータを選択する方法である:私はこのコードで3月から5月のデータを選択することができますか? ご協力いただければ幸いです。

と私のデータフレームは、次のようになります。あなたはすべての年が同じに置き換えられているヘルパーSeriessを使用することができます

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

15は曜日か年を表しますか? – ayhan

+0

15は1年ではない – bikuser

+0

3月15日から5月15日までのデータを1年ではなくすべての年に欲しいと思っていますか? – ayhan

答えて

2

- 例えば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 
関連する問題