【问题标题】:How to convert pandas time series into numpy array of total elapsed time?如何将熊猫时间序列转换为总经过时间的numpy数组?
【发布时间】:2017-10-28 05:24:00
【问题描述】:

这里是熊猫新手。 我想从 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 例程。

【问题讨论】:

    标签: python pandas numpy


    【解决方案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.])
    

    【讨论】:

      【解决方案2】:

      也可以转换为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.])
      

      【讨论】:

      • 谢谢!也很有用。现在我知道当我输入 Series 类型时该怎么做。
      猜你喜欢
      • 2021-05-30
      • 2019-08-10
      • 1970-01-01
      • 2018-06-26
      • 2019-02-17
      • 1970-01-01
      • 2018-12-08
      相关资源
      最近更新 更多