【问题标题】:Creating time series data from pandas dataframe and known time interval从 pandas 数据帧和已知时间间隔创建时间序列数据
【发布时间】:2020-03-05 03:27:40
【问题描述】:

此数据没有日期时间或其他有用的列,如其他问题地址。

我有一个熊猫数据框(或单个系列)返回,但没有日期信息,如下所示:

      [10:1]
0    2.264555
1    3.555655
2    4.023047
3    3.500272
4    3.033678
..        ...
152  3.808607
153  4.222035
154  5.205624
155  5.025041
156  5.711009

我所拥有的是开始时间和每行之间的时间间隔。

基本上开始时间:2020-02-19T02:54:29.000Z 和时间间隔:“0.05”(5 秒)

如何创建 x,y 样式格式,例如 [[datetime, value], [datetime, value]] ?

在这种情况下,您通常会做与我的想法相反的事情,并首先将计算的日期时间作为列注入数据框中吗?

【问题讨论】:

  • 时间间隔是 50 微秒还是 5 秒? =)

标签: python pandas


【解决方案1】:

创建具有固定时间间隔的日期时间列:

import datetime

starting_time = datetime.datetime(2020,2,19,2,54,29)
td = 5  # timedelta
df['datetime'] = [starting_time + datetime.timedelta(seconds=i*td) for i in range(len(df))]

然后您可以应用它来将您的值转换为列表:

list(zip(df['datetime'], df['Column']))

【讨论】:

    【解决方案2】:

    您可以像这样创建时间戳:

    from datetime import datetime, timedelta
    date_list = [str(datetime(2010, 2, 19, 2, 54, 29).strftime('%Y-%m-%d %H:%M:%S Z')) + str(timedelta(seconds=5*x)) for x in range(0, len(df))]
    

    结果:

    ['2010-02-19 02:54:29 Z0:00:00',
     '2010-02-19 02:54:29 Z0:00:05',
     '2010-02-19 02:54:29 Z0:00:10',
     '2010-02-19 02:54:29 Z0:00:15',
     '2010-02-19 02:54:29 Z0:00:20',
     '2010-02-19 02:54:29 Z0:00:25',
    .
    .
    .
    ]
    

    然后

    df.insert(0, 'TimeStamp', date_list)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-13
      • 1970-01-01
      • 1970-01-01
      • 2020-12-04
      • 2021-05-07
      • 2021-01-20
      • 2021-11-12
      • 2019-04-28
      相关资源
      最近更新 更多