2017-01-16 9 views
1
から

はのは、2010年1月の月の各1日2つの値の1行を含むデータフレームを考えてみましょう:パイソン、パンダ: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属性ですアクセスして、次の方法で直接これを行うことができます:DF.truncateを使用して)

1:

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

2)ブールインデクサーの使用:

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

3)デフォルトでは、エンドポイントの両方が含まれたDateTimeインデックス使用:期間のすべてのこれらの生成

enter image description here

+0

ドキュメントは常に歓迎更新するために、少しの光/ PRSのある

df[query.start_time:query.end_time] 

を – Jeff

関連する問題