0

我在 pandas.to_datetime 函数中看到了一个奇怪的行为。如果我输入一个字符串,我会得到正确的日期:

In [100]: pandas.to_datetime(' 2012-10-19 16:32:35')
Out[100]: datetime.datetime(2012, 10, 19, 16, 32, 35)

但是,我有一个数据集,其中包含一个日期时间列,其中的字符串格式与上面第 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

当我尝试将 datetime 列设置为时间戳时,我得到一个非常奇怪的 datetime 对象:

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 的工作方式(很可能),要么这是意外的行为(不太可能)。它是哪一个?

4

1 回答 1

0

我怀疑问题出在打印 numpy datetime64[ns] 对象上。如果您将这些有趣的日期值转换回 pandas Timestamp 对象,它们看起来很正常。

pandas.Timestamp(data_frame.ix[0]['datetime'])

应该给出一个正常的结果。

于 2012-11-02T21:48:04.483 回答