让我们考虑一个DataFrame,它包含2010年1月每一天的1行2个值:
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。我怎样才能创建这样的布尔索引器? - 理想情况下,无需将期间转换为日期时间范围。
答案 0 :(得分:3)
让查询pd.Period
对象为:
query = pd.Period('2009-12-28/2010-01-03', 'W-SUN')
您可以通过以下方式直接执行此操作:start_time
和end_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)使用DateTime Indexing,默认情况下包括两个端点:
df[query.start_time:query.end_time]
所有这些产生