我有一個(gè)來(lái)自數(shù)據(jù)幀和日期時(shí)間對(duì)象的時(shí)間戳,我想比較它們以在數(shù)據(jù)幀中進(jìn)行選擇。我的數(shù)據(jù)如下:print(type(datetime.datetime.now()))<class 'datetime.datetime'>print(type((df.created_at[0])))<class 'pandas._libs.tslibs.timestamps.Timestamp'>如何使用日期時(shí)間對(duì)象選擇該數(shù)據(jù)框中的特定行?如下:df[df.created > datetime.datetime.now()]但它返回給我以下錯(cuò)誤消息:TypeError: Cannot compare tz-naive and tz-aware datetime-like objects,知道如何解決這個(gè)問(wèn)題嗎?謝謝!
2 回答

白豬掌柜的
TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
時(shí)間戳是一個(gè)時(shí)區(qū)感知對(duì)象,而您從中獲取的日期時(shí)間對(duì)象datetime.datetime.now()
是時(shí)區(qū)天真的對(duì)象,因?yàn)槟鷽](méi)有另外指定,因此會(huì)出現(xiàn)錯(cuò)誤。您應(yīng)該進(jìn)行轉(zhuǎn)換,以便它們要么都支持時(shí)區(qū),要么都不支持時(shí)區(qū)。
例如,您可以datetime.datetime.now()
像這樣調(diào)用以使其具有時(shí)區(qū)意識(shí)(從時(shí)間戳對(duì)象傳遞時(shí)區(qū)信息作為參數(shù)):
datetime.datetime.now(df.created_at[0].tzinfo)

慕村225694
TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
df[df.created.to_pydatetime()?>?datetime.datetime.now()]
添加回答
舉報(bào)
0/150
提交
取消