所以,我有一个看起来像这样的数据帧(名为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().
发生了什么,我该如何解决?谢谢!
答案 0 :(得分:1)
您可以使用numpy.logical_and
:numpy.logical_and(a,b)
secondperiod = firstreadin[numpy.logical_and(firstreadin.date >= firsttime, firstreadin.date < secondtime)]
我希望这可以帮到你!