将datetime.datetime对象转换为Python中epoch以来的天数

bri*_*enb 3 python datetime epoch date-formatting pandas

我有一个pandas.Series可能看起来像这样的对象:

import pandas as pd
myVar = pd.Series(["VLADIVOSTOK 690090", "MAHE", NaN, NaN, "VLADIVOSTOK 690090", "2000-07-01 00:00:00"])
Run Code Online (Sandbox Code Playgroud)

myVar[5]datetime.datetime当数据通过Python读入时,被解析为对象pandas.我假设将此值转换为自纪元(36708)以来的天数并不困难.我刚接触Python,不知道该怎么做.提前致谢!

Tig*_*kT3 18

我不确定自那个时代以来你在哪里获得36,708天(自1970年1月1日以来只有16,644天),但是datetime.timedelta对象(用于日期算术)有一个days属性:

>>> import datetime
>>> (datetime.datetime.utcnow() - datetime.datetime(1970,1,1)).days
16644
Run Code Online (Sandbox Code Playgroud)

  • 对不起,我可能说错了。你是对的,Unix 系统的纪元是 1970 年 1 月 1 日。我正在使用 Excel 工作表,因此“纪元”从技术上讲是 1900 年 1 月 1 日,但实际上是 1899 年 12 月 30 日,以便纠正它是闰年。尽管如此,您的解决方案仍然有效。 (2认同)

Pad*_*ham 5

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
Run Code Online (Sandbox Code Playgroud)