我正在编写一个检查excel文件的程序,如果今天的日期在excel文件的日期列中,我将对其进行解析
我正在使用:
cur_date = datetime.today()
今天的日期。我正在检查今天是否在以下列中:
bool_val = cur_date in df['date'] #evaluates to false
我确实知道今天的日期在有问题的文件中。系列的dtype是datetime64 [ns]
此外,我只检查日期本身,而不检查事后的时间戳,如果这很重要的话。我这样做是为了将时间戳记为00:00:00:
cur_date = datetime.strptime(cur_date.strftime('%Y_%m_%d'), '%Y_%m_%d')
打印后该对象的类型也是日期时间
答案 0 :(得分:7)
对于在比较数据框日期和可变日期时也偶然发现此问题的任何人,这并不能完全回答您的问题;您可以使用下面的代码。
代替:
self.df["date"] = pd.to_datetime(self.df["date"])
您可以导入日期时间,然后将.dt.date添加到末尾,例如:
self.df["date"] = pd.to_datetime(self.df["date"]).dt.date
答案 1 :(得分:5)
您可以使用
pd.Timestamp('today')
或
pd.to_datetime('today')
但是,两者都给出了'now'
的日期和时间。
尝试以下方法:
pd.Timestamp('today').floor('D')
或
pd.to_datetime('today').floor('D')
您也可以将datetime
对象传递给pandas.to_datetime
,但我喜欢其他选项。
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()