出于某种原因,我无法检查日期是否在 Pandas 系列中。
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 不起作用吗?
TIA,
奥利维尔。
最佳答案
当你使用
obj 中的值
,python 尝试将值传递给 __contains__
obj 的内置函数
尝试检查 ts 的类型:
In [1]: type(ts)
Out[1]: pandas.core.series.Series
如果你看到pandas.core.series.Series
,你会发现__contains__
的定义如下:
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
关于python - 系列中时间戳的 bool 运算符不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34556493/