gpt4 book ai didi

python - Pandas 处理 numpy timedelta64[ms]

转载 作者:太空狗 更新时间:2023-10-30 01:34:38 24 4
gpt4 key购买 nike

>>> import pandas as pd
>>> pd.__version__
'0.11.0'
>>> import numpy as np
>>> np.__version__
'1.7.1'
>>> d={'a':np.array([68614867, 72200835], dtype=np.dtype('timedelta64[ms]'))}
>>> d['a'][0]
numpy.timedelta64(68614867,'ms')
>>> df = pd.DataFrame.from_dict(d)
>>> print df
a
0 00:00:00.068615
1 00:00:00.072201

看起来它正在将底层 int64 中的值解释为 ns 而不是 ms。这是 pandas 处理 timedelta64[ms] 类型的错误吗?

最佳答案

timedelta 处理仍在进行中,请参阅此问题:https://github.com/pydata/pandas/issues/3009

主要问题是 numpy 1.6.2 中的时间增量被破坏了。

尚不支持在创建过程中传递任意时间增量数据类型,因为一个解决方法,你可以这样做,因为目前唯一支持的 dtype 是顺便说一句,内部 timedelta64[ns](这正是 datetime64[ns] 的工作原理)。 Pandas 转换为内部 repr 然后你想要你想要的。

(此解决方案仅适用于 numpy >= 1.7)。

In [22]: d['a'].astype('timedelta64[ns]')
Out[22]: array([68614867000000, 72200835000000], dtype='timedelta64[ns]')

In [23]: DataFrame(dict(a = d['a'].astype('timedelta64[ns]')))
Out[23]:
a
0 19:03:34.867000
1 20:03:20.835000

In [24]: DataFrame(dict(a = d['a'].astype('timedelta64[ns]'))).dtypes
Out[24]:
a timedelta64[ns]
dtype: object

您要实现的最终目标是什么?

关于python - Pandas 处理 numpy timedelta64[ms],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16288320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com