簡體   English   中英

在 Python 中的 pandas 數據框的時間戳列中查找日期時間

[英]Find datetime in timestamp column of pandas dataframe in Python

我有一個時間戳,比如 1611903555682,我將其轉換為日期時間,即 2021-01-29 07:59:15,我想知道這個日期時間是否存儲在 pandas 數據幀的時間戳列中,看起來像:

['2021-05-10T19:53:38.205000000' '2021-05-10T19:53:39.210000000' '2021-05-10T19:53:40.215000000' ... '2021-02-08T11:36:08.63910000002 -02-08T11:36:09.644000000''2021-02-08T11:36:10.649000000']

我希望比較只看 YYYY-MM-DD HH-MM-SS,所以忽略毫秒。

我嘗試了以下

 if pd.Timestamp(datetime.fromtimestamp(last_timestamp/1000).strftime("%Y-%m-%d, %H:%M:%S") ) in df_processed_timestamps['time'].values:
        print('Value is already in dataframe.')
        return

但是這個條件永遠不會被輸入,即使值實際上在數據框中(我通過打印數據框來檢查它)。 我在做轉換錯誤嗎? 事實上,如果我運行:

print(str(pd.Timestamp(datetime.fromtimestamp(last_timestamp/1000).strftime("%Y-%m-%d, %H:%M:%S") )))
     
print(df_processed_timestamps['time'].values)

我得到:

 2021-01-29 07:59:15
['2021-05-10T19:53:38.205000000' '2021-05-10T19:53:39.210000000'
 '2021-05-10T19:53:40.215000000' ... '2021-02-08T11:36:08.639000000'
 '2021-02-08T11:36:09.644000000' '2021-02-08T11:36:10.649000000']

有什么建議嗎? 謝謝!

您的問題是您將timestamp轉換為%Y-%m-%d, %H:%M:%Stime列中的值不是那種格式。

您可以將time列轉換為秒,然后檢查timestamp是否在列中

timestamp = 1611903555682
isin = timestamp in pd.to_datetime(df['time']).values.astype(np.int64) // (10**6)
print(pd.to_datetime(df['time']).values.astype(np.int64) // (10**6))

[1620676418205 1620676419210 1620676420215 1612784168639 1612784169644
 1612784170649]

print(isin)

False

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM