我正在编写一个程序来检查一个excel文件,如果今天的日期在excel文件的日期列中,我会解析它
我用的是:

cur_date = datetime.today()

今天的约会。我正在检查今天是否在专栏中:
bool_val = cur_date in df['date'] #evaluates to false

我确实知道今天的日期在有关文件中。序列的数据类型是datetime64[ns]
另外,如果重要的话,我只检查日期本身,而不是之后的时间戳。我这样做是为了让时间戳00:00:00:
cur_date = datetime.strptime(cur_date.strftime('%Y_%m_%d'), '%Y_%m_%d')

打印后对象的类型也是datetime

最佳答案

你可以用

pd.Timestamp('today')


pd.to_datetime('today')

但这两个都给出了'now'的日期和时间。
请改为:
pd.Timestamp('today').floor('D')


pd.to_datetime('today').floor('D')

您也可以将datetime对象传递给pandas.to_datetime,但我喜欢其他选项mroe。
pd.to_datetime(datetime.datetime.today()).floor('D')

熊猫还有一个Timedelta对象
pd.Timestamp('now').floor('D') + pd.Timedelta(-3, unit='D')

或者您可以使用offsets模块
pd.Timestamp('now').floor('D') + pd.offsets.Day(-3)

要查看会员资格,请尝试下列操作之一
cur_date in df['date'].tolist()

或者
df['date'].eq(cur_date).any()

关于python - Pandas 中的datetime和datetime64 [ns]之间的比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51827134/

10-15 01:18