[英]Convert datetime.datetime object to days since epoch in Python
我有一個可能如下所示的pandas.Series
對象:
import pandas as pd
myVar = pd.Series(["VLADIVOSTOK 690090", "MAHE", NaN, NaN, "VLADIVOSTOK 690090", "2000-07-01 00:00:00"])
當數據通過pandas
讀入 Python 時, myVar[5]
被解析為datetime.datetime
對象。 我假設將此值轉換為自紀元 (36708) 以來的天數根本不困難。 我剛接觸 Python,不知道該怎么做。 提前致謝!
我不確定自紀元以來的 36,708 天(自 1970 年 1 月 1 日以來只有 16,644 天),但datetime.timedelta
對象(用於日期算術)有一個days
屬性:
>>> import datetime
>>> (datetime.datetime.utcnow() - datetime.datetime(1970,1,1)).days
16644
您可以先將其轉換為自紀元以來的秒數,然后將其除以一天中的秒數(一天中的 86,400 秒)。 請注意這里的整數除法 - 不會返回浮點數。
from datetime import datetime
now = datetime.now()
seconds = now.strftime("%s") # seconds since epoch
days = int(seconds) / 86400 # days since epoch
我添加了導入,現在作為我可以使用的日期時間對象的示例。
myVar = pd.Series(["VLADIVOSTOK 690090", "MAHE", "NaN", "NaN", "VLADIVOSTOK 690090", "2000-07-01 00:00:00"])
myVar[5] = pd.to_datetime(myVar[5]) - pd.datetime(1970,1,1)
print(myVar)
0 VLADIVOSTOK 690090
1 MAHE
2 NaN
3 NaN
4 VLADIVOSTOK 690090
5 11139 days 00:00:00
dtype: object
對於 Pandas 數據框:
df_train["DaysSinceEpoch"] = [i.days for i in df_train["date"] - datetime.datetime(1970, 1, 1)]
假設您想要自1970-01-01
Unix Epoch 以來的天數,並且您有一列 Pythonic datetime64[ns]
。
並查看我的另一個完全相反的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.