如何将pandas时间序列转换为总耗用时间的numpy数组?

时间:2017-10-27 21:15:14

标签: python pandas numpy

熊猫新手在这里。 我想从pandas转换日期范围时间序列 date_time

import pandas as pd
import numpy as np
In [1]: date_time = pd.date_range('2017/10/27','2017/10/29',freq='12H')

进入包含经过时间(例如,以小时为单位)的numpy数组 t ,以便:

In [2]: t
Out[2]: array([0,12,24,36,48])

最直接的方法是什么?

我需要将numpy数组 t 传递给odeint例程。

2 个答案:

答案 0 :(得分:1)

您可以divide Timedeltas by another Timedelta将它们转换为所需的频率单位(例如小时)。使用.values属性将结果转换为NumPy数组:

In [37]: ((date_time - date_time[0]) / pd.Timedelta('1H')).values
Out[37]: array([  0.,  12.,  24.,  36.,  48.])

答案 1 :(得分:1)

也可以转换为pd.Series并致电dt.total_seconds

x = pd.Series(date_time)
y = (x - x[0]).dt.total_seconds().div(60 * 60).values
y

array([  0.,  12.,  24.,  36.,  48.])