熊猫新手在这里。 我想从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例程。
答案 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.])