数据帧日期时间索引上的2523小时天数

2024-05-12 09:00:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个由datetimeindex索引的数据帧。指数的频率是可变的,但大多是基于分钟的抽样。你知道吗

由于数据库问题,索引上没有正确地处理节省时间的问题。因此,在特定的月/日,我为索引复制了值。有没有一种方法(不使用时区)来处理熊猫每天23-25小时的活动,这样我就可以在记录中保持时间的线性跟踪?你知道吗

下面是我的问题的一个小例子:

DatetimeIndex(['2014-03-12 22:59:59', '2014-03-12 22:59:59',
           '2014-03-12 23:00:59', '2014-03-12 23:00:59',
           '2014-03-12 23:01:59', '2014-03-12 23:02:59',
           '2014-03-12 23:02:59', '2014-03-12 23:03:59',
           '2014-03-12 23:03:59', '2014-03-12 23:04:59',
           '2014-03-12 23:04:59', '2014-03-12 23:05:59',
           '2014-03-12 23:06:59', '2014-03-12 23:06:59',
           '2014-03-12 23:07:59', '2014-03-12 23:07:59',
           '2014-03-12 23:08:59', '2014-03-12 23:09:59',
           '2014-03-12 23:09:59', '2014-03-12 23:10:59',
           '2014-03-12 23:10:59', '2014-03-12 23:11:59',
           '2014-03-12 23:11:59', '2014-03-12 23:12:59',
           '2014-03-12 23:13:59', '2014-03-12 23:13:59',
           '2014-03-12 23:14:59', '2014-03-12 23:14:59',
           '2014-03-12 23:15:59', '2014-03-12 23:16:59',
           '2014-03-12 23:16:59', '2014-03-12 23:17:59',
           '2014-03-12 23:17:59', '2014-03-12 23:18:59',
           '2014-03-12 23:19:59', '2014-03-12 23:19:59',
           '2014-03-12 23:20:59', '2014-03-12 23:20:59',
           '2014-03-12 23:21:59', '2014-03-12 23:22:59',
           '2014-03-12 23:22:59', '2014-03-12 23:23:59',
           '2014-03-12 23:24:59', '2014-03-12 23:24:59',
           '2014-03-12 23:25:59', '2014-03-12 23:26:59',
           '2014-03-12 23:26:59', '2014-03-12 23:27:59',
           '2014-03-12 23:27:59', '2014-03-12 23:28:59',
           '2014-03-12 23:28:59', '2014-03-12 23:29:59',
           '2014-03-12 23:30:59', '2014-03-12 23:30:59',
           '2014-03-12 23:31:59', '2014-03-12 23:31:59',
           '2014-03-12 23:32:59', '2014-03-12 23:33:59',
           '2014-03-12 23:33:59', '2014-03-12 23:34:59',
           '2014-03-12 23:34:59', '2014-03-12 23:35:59',
           '2014-03-12 23:36:59', '2014-03-12 23:36:59',
           '2014-03-12 23:37:59', '2014-03-12 23:38:59',
           '2014-03-12 23:38:59', '2014-03-12 23:39:59',
           '2014-03-12 23:40:59', '2014-03-12 23:40:59',
           '2014-03-12 23:41:59', '2014-03-12 23:42:59',
           '2014-03-12 23:42:59', '2014-03-12 23:43:59',
           '2014-03-12 23:44:59', '2014-03-12 23:44:59',
           '2014-03-12 23:45:59', '2014-03-12 23:46:59',
           '2014-03-12 23:46:59', '2014-03-12 23:47:59',
           '2014-03-12 23:48:59', '2014-03-12 23:48:59',
           '2014-03-12 23:49:59', '2014-03-12 23:49:59',
           '2014-03-12 23:50:59', '2014-03-12 23:51:59',
           '2014-03-12 23:51:59', '2014-03-12 23:52:59',
           '2014-03-12 23:52:59', '2014-03-12 23:54:59',
           '2014-03-12 23:56:59', '2014-03-12 23:58:59',
           '2014-03-12 23:54:00', '2014-03-12 23:55:59',
           '2014-03-12 23:56:59', '2014-03-12 23:57:59',
           '2014-03-12 23:59:59'],
          dtype='datetime64[ns]', name='Timestamp', freq=None)  

Tags: 数据方法数据库记录时间线性指数例子
1条回答
网友
1楼 · 发布于 2024-05-12 09:00:32

你的问题是,日期索引是不可变的,所以你不能有修改它们的就地操作,你必须写在上面。你知道吗

一种解决方案是“展开”索引,使其仍具有相同的时间步数,但每隔一个时间戳将向前/向后推一小时。你知道吗

我把你的索引称为index

import pandas as pd
df = pd.DataFrame(index=index)

first_step = df.index[::2] # every second index

## shift everyone forward starting from the second value, grab every second value ##

second_step = df.index[1::2].shift(periods=1,freq='1H')

new_index = first_step.append(second_step)

df.index = new_index

我忍不住觉得很奇怪,告诉我有没有用。你知道吗

相关问题 更多 >