在将panda对象转换为时间戳时,我遇到了这个奇怪的问题。
列车‘日期’值类似于01/05/2014,我正试图将其转换为linuxtimestamp。
我的代码:
Train = pd.read_csv("data.tsv", sep='\t') # use TAB as column separator
Train['timestamp'] = pd.to_datetime(Train['date']).apply(lambda a: a.timestamp())我得到了这个错误:
Traceback (most recent call last):
File "socratis.py", line 11, in <module>
Train['timestamp'] = pd.to_datetime(Train['date']).apply(lambda a: a.timestamp())
File "/home/ubuntu/.local/lib/python2.7/site-packages/pandas/core/series.py", line 2220, in apply
mapped = lib.map_infer(values, f, convert=convert_dtype)
File "pandas/src/inference.pyx", line 1088, in pandas.lib.map_infer (pandas/lib.c:62658)
File "socratis.py", line 11, in <lambda>
Train['timestamp'] = pd.to_datetime(Train['date']).apply(lambda a: a.timestamp())
AttributeError: 'Timestamp' object has no attribute 'timestamp'发布于 2019-01-22 00:52:25
to_datetime seems to be deprecated.改用to_pydatetime() ...
发布于 2016-09-11 18:25:13
方法to_datetime将返回一个TimeStamp实例。我不确定您希望通过lambda函数实现什么,但您似乎正在尝试将一些对象转换为TimeStamp。
尝试删除apply部分,使其如下所示:
Train['timestamp'] = pd.to_datetime(Train['date'])
发布于 2016-09-25 01:26:54
您正在寻找datetime.timestamp(),它是在Python3.3中添加的。熊猫本身并没有参与其中。
N.B.
.timestamp()会将原始时间戳本地化为计算机的协调时差。相反,此答案中的建议与时区无关。
由于pandas uses nanoseconds internally (numpy datetime64[ns]),即使使用Python2也应该能够做到这一点:
Train['timestamp'] = pd.to_datetime(Train['date']).value / 1e9或者更明确地说(来自datetime文档):
import pandas as pd
from datetime import datetime, timedelta
def posix_time(dt):
return (dt - datetime(1970, 1, 1)) / timedelta(seconds=1)
Train['timestamp'] = pd.to_datetime(Train['date']).apply(posix_time)https://stackoverflow.com/questions/39434979
复制相似问题