通过从Pandas中的日期和时间戳列创建开始和结束时间列,获得5分钟间隔

fnatzsnv  于 2022-12-10  发布在  其他
关注(0)|答案(1)|浏览(181)
data = {'col_ts': ['2022-11-02T08:26:40', '2022-11-02T08:25:10', '2022-11-02T08:26:00', '2022-11-02T08:30:20',
                  '2022-11-02T08:33:30', '2022-11-02T08:36:40', '2022-11-02T08:26:20', '2022-11-02T08:50:10',
                  '2022-11-02T08:30:40', '2022-11-02T08:39:40']} 
df = pd.DataFrame(data, columns = ['col_ts'])
df

我有一个数据集,我想从其中创建两列,如start_time和end_time,如下所示,间隔为5分钟。感谢您在这方面的帮助。在SQL中,我使用以下代码生成了结果。

time_slice(col_ts, 5, 'MINUTE', 'START') as START_INTERVAL,
    time_slice(col_ts, 5, 'MINUTE', 'END') as END_INTERVAL,

在Pandas中,我使用了下面的代码。不幸的是,这将给予我一个行级间隔。

df.resample("5T").mean()

0vvn1miw

0vvn1miw1#

以下是使用Pandas to_datetime和dt.访问器执行此操作的一种方法:

df["col_ts"] = pd.to_datetime(df["col_ts"])
df["start_interval"] = df["col_ts"].dt.floor("5T")
df["end_interval"] = df["col_ts"].dt.ceil("5T")

然后道:

col_ts      start_interval        end_interval
0 2022-11-02 08:26:40 2022-11-02 08:25:00 2022-11-02 08:30:00
1 2022-11-02 08:25:10 2022-11-02 08:25:00 2022-11-02 08:30:00
2 2022-11-02 08:26:00 2022-11-02 08:25:00 2022-11-02 08:30:00
3 2022-11-02 08:30:20 2022-11-02 08:30:00 2022-11-02 08:35:00
4 2022-11-02 08:33:30 2022-11-02 08:30:00 2022-11-02 08:35:00
5 2022-11-02 08:36:40 2022-11-02 08:35:00 2022-11-02 08:40:00
6 2022-11-02 08:26:20 2022-11-02 08:25:00 2022-11-02 08:30:00
7 2022-11-02 08:50:10 2022-11-02 08:50:00 2022-11-02 08:55:00
8 2022-11-02 08:30:40 2022-11-02 08:30:00 2022-11-02 08:35:00
9 2022-11-02 08:39:40 2022-11-02 08:35:00 2022-11-02 08:40:00

相关问题