Преобразование временных меток в доли дня в pandas

#python #pandas

#питон #панды

Вопрос:

Я хочу преобразовать время в формате чч: мм в долю дня. У меня есть фрейм данных, в котором у меня есть столбец продолжительности

 Duration
0:56
0:54
2:57
 

Я хочу преобразовать этот столбец в долю дня

Комментарии:

1. Пожалуйста, укажите ожидаемый результат.

2. Что именно вы имеете в виду, говоря о доле дня? Итак, преобразуем продолжительность в долю в 24 часа?

3. да, доля чч: мм в доле 24 часа

4. Опубликуйте ожидаемый результат ответа на вопрос. Какова доля дня?

Ответ №1:

Если я вас правильно понял. Мы можем разделить продолжительность в часах и минутах, затем преобразовать минуты в доли часов и, наконец, проверить долю дня, суммируя оба:

 split = df['Duration'].str.split(':')
h = split.str[0].astype(int)
m = split.str[1].astype(int)
df['fraction_24_hrs'] = (h   m / 60) / 24
 
   Duration  fraction_24_hrs
0     0:56         0.038889
1     0:54         0.037500
2     2:57         0.122917
 

Вариант 2 — использовать функциональность pandas timedelta:

 dates = pd.to_datetime(df['Duration'], format='%H:%M')
df['fraction_24_hrs'] = (dates - dates.dt.floor('D')) / pd.Timedelta(24, 'H')
 
   Duration  fraction_24_hrs
0     0:56         0.038889
1     0:54         0.037500
2     2:57         0.122917