出于某种原因,我无法检查熊猫系列中是否有日期。
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
有人可以解释为什么d in ts
不起作用吗?
TIA,
奥利弗。
答案 0 :(得分:2)
使用时
value in obj
,python尝试将值传递给obj的__contains__
内置函数
尝试检查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