麻烦选择Pandas中的一段日期与<和>

时间:2015-06-04 02:08:23

标签: python pandas dataframe

也许是一个非常简单的问题,但这是我第一次使用大熊猫,而且我很难根据日期将数据帧分成较小的数据帧。

所以,我有一个看起来像这样的数据帧(名为firstreadin)(还有数千行):

        date               numbers  megaball
0 1999-01-12     [5, 7, 9, 20, 46]         2
1 1999-01-08   [5, 21, 23, 26, 37]         3
2 1999-01-05   [4, 31, 32, 34, 43]        19
3 1999-01-01  [11, 19, 28, 43, 48]         5
4 1998-12-29     [3, 5, 7, 28, 35]        10

我希望在给定特定日期分隔符的情况下将它们分成几个时段,虽然我在指定第一个和最后一个时段时没有遇到任何问题,但我似乎无法指定中间时段:

#firsttime and secondtime are the date separators
firsttime = datetime.datetime.strptime('1/13/99', '%m/%d/%y')
secondtime = datetime.datetime.strptime('5/15/02', '%m/%d/%y')

firstperiod = firstreadin[firstreadin.date < firsttime].reset_index(drop=True)
thirdperiod = firstreadin[firstreadin.date > secondtime].reset_index(drop=True)

我无法获得第二期! (第一次和第二次之间的那个)。 我试过这个:

secondperiod = firstreadin[firstreadin.date >= firsttime and firstreadin.date < secondtime] 

但这只是给了我ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

发生了什么,我该如何解决?谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用numpy.logical_and:numpy.logical_and(a,b)

    secondperiod = firstreadin[numpy.logical_and(firstreadin.date >= firsttime, firstreadin.date < secondtime)]

我希望这可以帮到你!