Существует ли функция Python для преобразования дней в десятичном формате в ЧЧ:ММ:СС?

#python #pandas #timedelta

Вопрос:

Я пытаюсь оформить фрейм данных и экспортировать его в другой лист Excel. Я преобразовал опорное время и столбец времени в фрейме данных в timedelta. После преобразования и применения стиля соответствующие значения столбцов изменились на дни в десятичном формате.
Как мне изменить эти десятичные значения на HH:MM:SS или мне нужно преобразовать их с помощью обычных формул(например, сначала умножить их на 24, чтобы получить часы) или есть способ сохранить исходные значения? Например — 0.255636574074074 преобразуется в 6:08:07 .

То, что я сделал, это —

 df['Total Time'] = pd.to_timedelta(df['Total Time)'].astype(str))  
df_styled = df.style.applymap(lambda x: 'background-color: %s' % 'red' if x > threshold else 'background-color: %s' % 'white', subset=['Total Time'])
 

Исходные значения столбцов-это значения даты и времени, которые были изменены на timedelta.

Ответ №1:

Используйте параметр unit='d' для преобразования значений в временные интервалы:

 a = pd.to_timedelta(0.255636574074074, unit='d')
print (a)
0 days 06:08:06.999993600
 

Итак, в вашем решении:

 df['col'] = pd.to_timedelta(df['col'], unit='d')  
 

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

1. Поскольку я не могу внести изменения в df_styled, поэтому после сохранения excel я снова прочитал данные, а затем преобразовал coulmn в timedelta. Но это удаляет стиль, и значения также остаются в виде десятичных знаков.