Python datetime.datetime不在pandas._libs.tslibs.timestamps.Timestamp系列中

我不明白为什么在我的一系列日期时间中找不到我的日期时间:

X.key_datetime
Timestamp('2018-12-23 22:34:00')

df['Y'][0]
Timestamp('2018-12-23 22:34:00')

类型:

type(X.key_datetime)
class 'datetime.datetime'

type(df['Y'])
class 'pandas.core.series.Series'

type(df['Y'][0])
class 'pandas._libs.tslibs.timestamps.Timestamp'

我的日期时间等于系列中的第一个日期时间,但不是系列中的日期

X.key_datetime == df['Y'][0]
True

X.key_datetime in df['Y']
False

X.key_datetime in df['Y'].values
False

使用pd.to_datetime进行转换时,我仍然遇到相同的问题:

pd.to_datetime(X.key_datetime) == pd.to_datetime(df['Y'][0])
True

pd.to_datetime(X.key_datetime) in pd.to_datetime(df['Y'])
False
kazmax 回答:Python datetime.datetime不在pandas._libs.tslibs.timestamps.Timestamp系列中

深入研究熊猫代码,可以了解如何设置通用Series类。 __contains__方法(调用in)检查_info_axis属性。此属性是通过_setup_axes方法设置的,如下所示:https://github.com/pandas-dev/pandas/blob/v0.25.3/pandas/core/series.py#L4883

长故事型简短对象,in的{​​{1}}方法检查Series对象的Series。这里有一些例子来说明。

index

这令人惊讶,但是您必须记住,我们正在检查import pandas as pd df = pd.DataFrame({'Y': ['2019-11-15','2019-11-16'],'Z':['abc','def']}) df['Y'] = pd.to_datetime(df.Y) y = df.Y[0] y in df.Y # returns: False 'abc' in df.Z # returns: False index系列的Y。如果我们检查索引中的值,则会看到:

Z

要检查系列是否包含值,我将使用:

RangeIndex(start=0,stop=2,step=1)

或者在您的特定情况下:

0 in df.Y,1 in df.Z
# returns: 
(True,True)
本文链接:https://www.f2er.com/3095715.html

大家都在问