Python 为什么 pd.to_datetime 返回时间戳格式?
Python Why pd.to_datetime returning timestamp format?
在 Python 中,我正在尝试将数据框中的日期列格式化为浮动对象格式。我最终得到了时间戳格式。
在:
X = []
for row in data:
date = pd.to_datetime(row[0], format='%Y/%m/%d')
X.append(date)
print(X)
输出:
[Timestamp('2008-01-02 00:00:00'),
Timestamp('2009-01-02 00:00:00'),
Timestamp('2010-01-04 00:00:00'),
Timestamp('2011-01-03 00:00:00'),
Timestamp('2012-01-03 00:00:00'),
Timestamp('2013-12-02 00:00:00'),
Timestamp('2014-12-01 00:00:00'),
Timestamp('2015-01-02 00:00:00'),
Timestamp('2016-01-04 00:00:00'),
Timestamp('2017-01-03 00:00:00'),
Timestamp('2018-01-02 00:00:00'),
Timestamp('2019-01-02 00:00:00'),
Timestamp('2020-01-02 00:00:00')]
如何将时间戳改为浮动对象?我应该改用 datetime.strptime 吗?
如果您需要数字格式的日期,请使用:
import datetime
dt = datetime.datetime.strptime('2020/03/08', '%Y/%m/%d')
timestamp = dt.replace(tzinfo=datetime.timezone.utc).timestamp()
日期将显示为 UNIX 时间戳(浮点型)
编辑:如果您想使用 pandas,另请参阅
您不必遍历整个数据帧即可将 datetime
转换为 float
有更好的方法可以完成此操作,
试试这个:
df["date"] = pd.to_datetime(df["date"], format="%Y/%m/%d").astype("datetime64").astype(int).astype(float)
在 Python 中,我正在尝试将数据框中的日期列格式化为浮动对象格式。我最终得到了时间戳格式。
在:
X = []
for row in data:
date = pd.to_datetime(row[0], format='%Y/%m/%d')
X.append(date)
print(X)
输出:
[Timestamp('2008-01-02 00:00:00'),
Timestamp('2009-01-02 00:00:00'),
Timestamp('2010-01-04 00:00:00'),
Timestamp('2011-01-03 00:00:00'),
Timestamp('2012-01-03 00:00:00'),
Timestamp('2013-12-02 00:00:00'),
Timestamp('2014-12-01 00:00:00'),
Timestamp('2015-01-02 00:00:00'),
Timestamp('2016-01-04 00:00:00'),
Timestamp('2017-01-03 00:00:00'),
Timestamp('2018-01-02 00:00:00'),
Timestamp('2019-01-02 00:00:00'),
Timestamp('2020-01-02 00:00:00')]
如何将时间戳改为浮动对象?我应该改用 datetime.strptime 吗?
如果您需要数字格式的日期,请使用:
import datetime
dt = datetime.datetime.strptime('2020/03/08', '%Y/%m/%d')
timestamp = dt.replace(tzinfo=datetime.timezone.utc).timestamp()
日期将显示为 UNIX 时间戳(浮点型)
编辑:如果您想使用 pandas,另请参阅
您不必遍历整个数据帧即可将 datetime
转换为 float
有更好的方法可以完成此操作,
试试这个:
df["date"] = pd.to_datetime(df["date"], format="%Y/%m/%d").astype("datetime64").astype(int).astype(float)