#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. Но это удаляет стиль, и значения также остаются в виде десятичных знаков.