Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 序列中时间戳的bool运算符不起作用_Python_Pandas_Timestamp - Fatal编程技术网

Python 序列中时间戳的bool运算符不起作用

Python 序列中时间戳的bool运算符不起作用,python,pandas,timestamp,Python,Pandas,Timestamp,由于某些原因,我无法检查日期是否在熊猫系列中 import pandas as pd import numpy as np ts = pd.Series(['2011-01-01','02-02-2011'], dtype='datetime64[ns]') d = np.datetime64(pd.Timestamp('02-02-2011')) 现在 In [5]: d == ts[1] Out[5]: True In [6]: d in ts Out[6]: False 有人能解释一

由于某些原因,我无法检查日期是否在熊猫系列中

import pandas as pd
import numpy as np
ts = pd.Series(['2011-01-01','02-02-2011'], dtype='datetime64[ns]')
d = np.datetime64(pd.Timestamp('02-02-2011'))
现在

In [5]: d == ts[1]
Out[5]: True

In [6]: d in ts
Out[6]: False
有人能解释一下为什么ts中的
d
不起作用吗

蒂亚

奥利维尔。

当你使用 在obj中,python试图将值传递给obj的内置函数

尝试检查ts的类型:

In [1]: type(ts)
Out[1]: pandas.core.series.Series
如果您看到
pandas.core.series.series
,您会发现
\uuuuu包含的定义如下所示:

def __contains__(self, key):
    return key in self.index
那么,试试这个:

In [2]: 0 in ts
Out[2]: True
In [3]: 1 in ts
Out[3]: True
它尝试检查给定的键是否在它的索引中,而不是检查它的值

In [4]: d in ts.values
Out[4]: True

好吧,它是这样的,但是,为什么它不一致呢?如果我使用整数:
ts=pd.Series([1,2,3])
那么ts中的
2给出了
True
单独的代码块并不能提供一个好的答案。请添加解释(为什么它解决了问题,错误在哪里,等等。)希望我能像你在版本中对我的上一个答案所问的那样解释:)详细的解释很清楚,谢谢:-)我的
ts=pd.Series([1,2,3])
的例子很幸运,索引的值与值相同。