我有一个pandas.Series
对象可能看起来像这样:
import pandas as pd
myVar = pd.Series(["VLADIVOSTOK 690090", "MAHE", NaN, NaN, "VLADIVOSTOK 690090", "2000-07-01 00:00:00"])
当数据通过myVar[5]
读入Python时, datetime.datetime
被解析为pandas
对象。我假设将此值转换为自纪元(36708)以来的天数并不困难。我刚接触Python,不知道该怎么做。提前谢谢!
答案 0 :(得分:15)
我不知道自那个时代以来你在哪里获得36,708天(自1970年1月1日以来只有16,644天),但是datetime.timedelta
个对象(用于日期)算术)具有days
属性:
>>> import datetime
>>> (datetime.datetime.utcnow() - datetime.datetime(1970,1,1)).days
16644
答案 1 :(得分:3)
您可以将此时间转换为秒数,然后将其除以一天中的秒数(一天中86,400秒)。请注意这里的整数除法 - 不会返回浮动。
from datetime import datetime
now = datetime.now()
seconds = now.strftime("%s") # seconds since epoch
days = int(seconds) / 86400 # days since epoch
我添加了导入,现在作为我可以使用的日期时间对象的示例。
答案 2 :(得分:1)
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
答案 3 :(得分:0)
对于 Pandas 数据框:
df_train["DaysSinceEpoch"] = [i.days for i in df_train["date"] - datetime.datetime(1970, 1, 1)]
假设您想要自 Unix Epoch of 1970-01-01
以来的天数,并且您有一列 Pythonic datetime64[ns]
。