从熊猫数据帧和已知时间间隔创建时间序列数据

时间:2020-03-04 18:51:20

标签: python pandas

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

我有一个返回的熊猫数据框(或单个系列),没有像这样的日期信息:

      [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秒)

如何创建类似[[datetime,value],[datetime,value]]的x,y样式格式?

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

2 个答案:

答案 0 :(得分:1)

您可以这样创建时间戳:

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)

答案 1 :(得分:1)

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

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']))