【问题标题】:For half-hourly intervals can I use Pandas TimeDeltaIndex, PeriodIndex or DateTimeIndex?对于半小时间隔,我可以使用 Pandas TimeDeltaIndex、PeriodIndex 或 DateTimeIndex 吗?
【发布时间】:2016-09-23 07:48:14
【问题描述】:

我有一个数据值表,应该每隔半小时编制一次索引,我一直在使用 Pandas 和 Numpy 处理它们。目前它们在 CSV 文件中,我使用 read_csv 将它们导入到只有间隔端点作为索引的数据帧中。我对此感到不舒服,并希望将间隔本身作为索引。

我不知道是使用DateTimeIndexPeriodIndex 还是TimedeltaIndex...在我看来,它们在实践中都非常相似。我的操作包括

  • 查找特定区间
  • 检查 DateTime 是否包含在特定间隔中
  • 区间的交集和(集)差
  • 分割和连接区间

Pandas 甚至可以做到所有这些吗?可取吗?我已经在使用this interval library,使用 Pandas tslibperiod 会更好吗?

【问题讨论】:

    标签: python datetime pandas intervals


    【解决方案1】:

    如果您只需要时间间隔为 30 分钟的系列,您可以这样做:

    import pandas as pd
    import datetime as dt
    
    today = dt.datetime.date()
    yesterday = dt.datetime.date()-dt.timedelta(days=1)
    time_range = pd.date_range(yesterday,today, freq='30T')
    

    现在你可以用它来设置索引了

    pd.DataFrame(0, index=time_range,columns=['yourcol'])
    
    Out[35]: 
                         yourcol
    2016-09-25 00:00:00        0
    2016-09-25 00:30:00        0
    2016-09-25 01:00:00        0
    2016-09-25 01:30:00        0
    2016-09-25 02:00:00        0
    

    这将是一个 DateTimeIndex

    您可以在此处阅读有关 pandas 时间间隔的更多信息:http://pandas.pydata.org/pandas-docs/stable/timeseries.html#offset-aliases

    【讨论】:

    • 但从某种意义上说,它是一个间隔,我可以在上面进行操作(如问题中所述)吗?喜欢交集和集差?每个单独的区间是否都有一个标识,以便我可以找到它的起点和终点?
    猜你喜欢
    • 1970-01-01
    • 2019-03-17
    • 1970-01-01
    • 2019-08-23
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    • 2018-06-15
    相关资源
    最近更新 更多