Python,Pandas:布尔索引将DateTimeIndex与Period进行比较

时间:2017-01-16 12:02:48

标签: python pandas

让我们考虑一个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。我怎样才能创建这样的布尔索引器? - 理想情况下,无需将期间转换为日期时间范围。

1 个答案:

答案 0 :(得分: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)使用DateTime Indexing,默认情况下包括两个端点:

df[query.start_time:query.end_time]

所有这些产生

enter image description here