如何从 pandas.DatetimeIndex 转换为 numpy.datetime64?

Posted

技术标签:

【中文标题】如何从 pandas.DatetimeIndex 转换为 numpy.datetime64?【英文标题】:How to convert from pandas.DatetimeIndex to numpy.datetime64? 【发布时间】:2012-10-25 00:55:19 【问题描述】:

如何将pandas.DatetimeIndex转换成numpy.datetime64

我明白了:

>>> type(df.index.to_datetime())
Out[56]: pandas.tseries.index.DatetimeIndex

numpy.array(datetimeindex,dtype=numpy.datetime64) 安全吗?

【问题讨论】:

【参考方案1】:

内的数据属于datetime64 dtype(准确来说是datetime64[ns])。只需获取索引的values 属性即可。请注意,它将是纳秒单位。

【讨论】:

对于 pandas 0.10.1 仍然如此吗? pd.date_range("20120101", "20120102").values 产生 array([1970-01-16 224:00:00, 1970-01-16 248:00:00], dtype=datetime64[ns]),这是不正确的。【参考方案2】:

我会这样做:-

new_array = np.array(df.index.to_pydatetime(), dtype=numpy.datetime64)

使用to_pydatetime() 方法。

【讨论】:

以上是关于如何从 pandas.DatetimeIndex 转换为 numpy.datetime64?的主要内容,如果未能解决你的问题,请参考以下文章

Pandas - 如何将 RangeIndex 转换为 DateTimeIndex

Subsassing Pandas DatetimeIndex

将 Pandas DatetimeIndex 转换为数字格式

创建 DataFrame 后设置 pandas DatetimeIndex 的频率

来自 MongoDB ISODate 的 Pandas DatetimeIndex

根据每组的频率填充数据帧