在panda上应用函数时发生了一些奇怪的事情。系列
In [508]: id = lambda x : x
In [509]: tt = lambda x : type(x)
In [510]: timeSeries
Out[510]:
0 1900-01-01 20:11:49.075690
1 1900-01-01 20:11:49.082546
2 1900-01-01 20:11:52.535287
3 1900-01-01 20:11:52.535372
4 1900-01-01 20:11:52.535528
Name: timeSeries
In [511]: timeSeries.map(id)
Out[511]:
0 1969-12-06 172:11:49.075690
1 1969-12-06 172:11:49.082546
2 1969-12-06 172:11:52.535287
3 1969-12-06 172:11:52.535372
4 1969-12-06 172:11:52.535528
Name: timeSeries
这里通过应用id函数改变了时间戳 新时间的小时不正确。 更多:类型也改变了
In [513]: type(timeSeries[0])
Out[513]: pandas.lib.Timestamp
In [512]: timeSeries.map(tt)
Out[512]:
0 <type 'numpy.datetime64'>
1 <type 'numpy.datetime64'>
2 <type 'numpy.datetime64'>
3 <type 'numpy.datetime64'>
4 <type 'numpy.datetime64'>
Name: timeSeries
我认为只要保留映射到的时间戳,类型更改就可以了
In [515]: np.datetime64(timeSeries[0])
Out[515]: 1900-01-01 20:11:49.075690
有人可以解释一下这里发生了什么吗? 我想用自定义函数做一个地图,我期待pandas.lib.Timestamp类型。 或者,如果有办法将np.datetime64转换为有效时间。
编辑:以下工作将np.datetime64强制转换回时间戳。上述情况仍然很奇怪。
In [528]: pd.lib.Timestamp(time2[0])
Out[528]: <Timestamp: 1900-01-01 20:11:49.075690>
In [529]: time2[0]
Out[529]: 1969-12-06 172:11:49.075690
我的猜测是关于np.datetime64与pandas.lib.Timestamp之间的内部格式差异