2017-01-16 111 views
1

比較讓我們考慮一個包含每2010年1月的一個月中每天1列2個值的數據幀:Python中,熊貓:布爾索引DateTimeIndex以期

date_range = pd.date_range(dt(2010,1,1), dt(2010,1,31), freq='1D') 
df = pd.DataFrame(data = np.random.rand(len(date_range),2), index = date_range) 

我想使用期限Period('2009-12-28/2010-01-03', 'W-SUN')到創建一個布爾型索引器,該索引器將返回僅包含該期間的DataFrame。我如何創建這樣的布爾索引器? - 理想情況下不需要將時間段轉換爲日期時間範圍。

回答

3

讓查詢pd.Period對象是:

query = pd.Period('2009-12-28/2010-01-03', 'W-SUN') 

您可以通過以下方式直接做到這一點通過訪問它的start_timeend_time屬性:

1)使用DF.truncate

df.truncate(query.start_time, query.end_time) 

2)使用布爾指數器:

df[(df.index >= query.start_time) & (df.index <= query.end_time)] 

3)使用日期時間索引在默認情況下包括端點:

df[query.start_time:query.end_time] 

所有這些生產上期

enter image description here

+0

文檔是一盞小燈/永久居民更新隨時歡迎 – Jeff