Время группы в интервалы времени - PullRequest
0 голосов
/ 28 января 2019

У меня есть датафрейм с разным временем.Мне нужно классифицировать эти времена по разным временным интервалам в новый столбец в новом фрейме данных.

df7['Time_B'] = df6.groupby([df6['Arr_Time'],pd.TimeGrouper(freq='6H')])

Ожидается новый столбец с Time_B.Время прибытия в формате ЧЧ: ММ следует классифицировать по разным временным сегментам, т. Е. 12-6, 6-12, 12-18, 18-24.Как я могу это сделать?

1 Ответ

0 голосов
/ 28 января 2019

Вот как я это сделаю:

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

Входной кадр данных: enter image description here

Чтобы добавить временные интервалы:

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"]

Желаемый результат: enter image description here

Надеюсь, это поможет.Код может быть сжат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...