首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将时间分组为时间间隔

将时间分组为时间间隔
EN

Stack Overflow用户
提问于 2019-01-28 18:01:29
回答 1查看 51关注 0票数 0

我有一个包含不同时间的数据帧。我需要将这些时间划分为不同的时间间隔,放入新数据帧中的新列中。

代码语言:javascript
复制
df7['Time_B'] = df6.groupby([df6['Arr_Time'],pd.TimeGrouper(freq='6H')])

预计会有一个包含Time_B的新列。HH:MM中的到达时间将被划分为不同的时间段,即12-6、6-12、12-18、18-24。我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-29 00:06:31

下面是我将如何做的:

代码语言:javascript
复制
from io import StringIO
import numpy as np
import pandas as pd

df7 = pd.read_csv(StringIO('''
Origin, Destination, Dept_Date, Dept_Time, Total_Fare
BLR, MAA, 2018-10-27, 00:45, 2635.0
BLR, MAA, 2018-10-27, 10:45, 2635.0
BLR, MAA, 2018-10-27, 11:45, 2635.0
BLR, MAA, 2018-10-27, 18:45, 2635.0
'''))

df7

输入数据帧:

添加时隙的步骤:

代码语言:javascript
复制
df7["Departure"] = df7.apply(lambda x: pd.to_datetime(x[2] +' '+ x[3]), axis=1)

time_diff = df7.Departure - pd.to_datetime(df7.Departure.dt.date)

df7['Time_Slot'] = np.floor((time_diff / np.timedelta64(6, 'h')) )

interval_dict = {0.0:'00-06',
                1.0:'06-12',
                2.0:'12-18',
                3.0:'18-24'}

df7['Time_B'] = df7.Time_Slot.map(interval_dict)

del df7["Departure"]
del df7["Time_Slot"]

所需的输出:

希望这能有所帮助。代码可以被压缩。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54399486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档