Python 检查pandas.Timestamp是否在pandas.Period中

Python 检查pandas.Timestamp是否在pandas.Period中,python,pandas,timestamp,period,Python,Pandas,Timestamp,Period,伪:myPeriod.contains(myTimestamp) 我发现熊猫身上缺少这种功能是相当令人惊讶的。我在这里遗漏了什么吗?您可以使用开始时间和结束时间访问时段的边界,因此时间是否在时段内的表达式为 myPeriod.start_time < myTimestamp < myPeriod.end_time myPeriod.start\u时间

伪:myPeriod.contains(myTimestamp)


我发现熊猫身上缺少这种功能是相当令人惊讶的。我在这里遗漏了什么吗?

您可以使用
开始时间
结束时间
访问时段的边界,因此时间是否在时段内的表达式为

myPeriod.start_time < myTimestamp < myPeriod.end_time
myPeriod.start\u时间
如果有多个值,可以尝试:

print df.index
PeriodIndex(['2015-11'], dtype='int64', name=u'', freq='M')

d = "2015-09-01"
d1 = "2015-10-01"
print df.index.isin([pd.to_datetime(d).to_period('M'), pd.to_datetime(d1).to_period('M')])
[False]

d = "2015-11-01"
d1 = "2015-11-01"   
print df.index.isin([pd.to_datetime(d).to_period('M'), pd.to_datetime(d1).to_period('M')])
[ True]
如果您只想比较一个
日期时间
,使用起来更简单(谢谢):

或使用
系列

print df.a
0   2015-11
Name: a, dtype: object

d = "2015-09-01"
d1 = "2015-10-01"   
print df.a.isin([pd.to_datetime(d).to_period('M'), pd.to_datetime(d1).to_period('M')]).values
[False]

d = "2015-11-01"
d1 = "2015-11-01"
print df.a.isin([pd.to_datetime(d).to_period('M'), pd.to_datetime(d1).to_period('M')]).values
[ True]

谢谢,但我希望有更简洁的东西,考虑到这是python,我们在python之上使用pandas。在我看来,这是相当简洁和python式的,大多数语言不会让你像这样组合一个双不等式哦,很好,我不知道(双不等式的事情)在python中是可能的,我以为那是一个伪代码。谢谢。谢谢你这么及时的回复,我知道我错过了什么。但既然我们在这里,我还有一个问题:我如何让自己意识到“isin”的存在?它不在熊猫的网页“时间序列/日期功能”中,你可以在这里找到它,它不是关于
isin
,你答案的实质是将时间戳转换为一个周期并检查是否相等,真正发生的是表达式
myTimestamp.to\u period(myPeriod.freqstr)==myPeriod
如果脱离索引的上下文操作,我将只使用您先前的:myPeriod.start_timeprint df.a 0 2015-11 Name: a, dtype: object d = "2015-09-01" d1 = "2015-10-01" print df.a.isin([pd.to_datetime(d).to_period('M'), pd.to_datetime(d1).to_period('M')]).values [False] d = "2015-11-01" d1 = "2015-11-01" print df.a.isin([pd.to_datetime(d).to_period('M'), pd.to_datetime(d1).to_period('M')]).values [ True]