1. ホーム
  2. python

[解決済み] pandasでdatetimeとdatetime64[ns]を比較する。

2022-03-04 19:53:17

質問

エクセルファイルをチェックするプログラムを書いていて、エクセルファイルの日付欄に今日の日付があれば、それを解析しています

使っています。

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')

そして、印刷後のそのオブジェクトの型は、同様にdatetimeです

どのように解決するのですか?

を使用することができます。

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')


また、Pandasは 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()