使用pandas date_range对象进行数据操作

时间:2014-02-16 06:44:04

标签: python pandas

熊猫新手。我有一个与日期相关的列表L,现在我想根据输入时间范围得到L的子集。

例如,L是按日期排序的365个元素的列表,即基于日期的一年数据。

date = pandas.date_range(start = '1/1/2013', end = '12/31/2013', freq='D')
desiredDate = pandas.date_range(start = '4/2/2013', end = '6/5/2013', freq='D')

如何从L中获取具有指定desiredDate的选择元素列表?

我在想的是获得两个日期obj,一个是start = 1/1,但结束日期= 2013年2月2日,找出它的长度。 另一个是start = 1/1,但结束日期= 6.5,再次找出它的长度。那么这个问题可能会得到解决。如果有人知道一些Pandas库函数以更优雅的方式解决这个问题,请回复,谢谢

非常感谢

1 个答案:

答案 0 :(得分:0)

从我所看到的,pandas索引对象支持与python set()对象相同的成员资格方法,例如交集,并集,差异和对称差异。尝试在两个DatetimeIndex对象上使用交集运算符(&)。

In [9]: date = pandas.date_range(start = '1/1/2013', end = '12/31/2013', freq='D')

In [10]: desiredDate = pandas.date_range(start = '4/2/2013', end = '6/5/2013', freq='D')

In [11]: date & desiredDate
Out[11]: 
<class 'pandas.tseries.index.DatetimeIndex'>
[2013-04-02, ..., 2013-06-05]
Length: 65, Freq: D, Timezone: None

In [12]: len(desiredDate)
Out[12]: 65

In [13]: len(date & desiredDate)
Out[13]: 65