1

在 panda.Series 上应用函数时发生了一些奇怪的事情

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 之间的内部格式差异?

4

0 回答 0