我在pandas.to_datetime函数中看到了一个奇怪的行为。如果我输入一个字符串,我会得到正确的日期:
In [100]: pandas.to_datetime(' 2012-10-19 16:32:35')
Out[100]: datetime.datetime(2012, 10, 19, 16, 32, 35)但是,我有一个数据集,它有一个datetime列,其中的字符串格式与上面第100行中的字符串格式相同:
In [101]: data_frame = pandas.read_csv('my_data.csv', header=None, names=['bid', 'datetime'])
In [102]: data_frame.ix[0]
Out[102]:
bid 428916
datetime 2012-10-19 16:32:35 # NOTE: THIS IS A STRING
Name: 0当我尝试将日期时间列设置为时间戳时,我得到一个非常奇怪的日期时间对象:
In [102]: data_frame['datetime'] = pandas.to_datetime(data_frame['datetime'])
In [103]: data_frame.ix[0]
Out [103]:
bid 428916
datetime 1970-01-16 80:32:35 # SEE THIS
Name: 0因此,要么是我误解了to_datetime的工作方式(很有可能),要么是这是意想不到的行为(可能性较小)。到底是哪一个?
发布于 2012-11-03 05:48:04
我怀疑问题出在numpy datetime64ns对象的打印中。如果您将这些有趣的日期值转换回pandas时间戳对象,它们看起来很正常。
pandas.Timestamp(data_frame.ix[0]['datetime'])应该会给出一个看起来正常的结果。
https://stackoverflow.com/questions/13202326
复制相似问题