Преобразование данных серии с датой в общее количество часов
У меня есть фрейм данных с именем mainData_Frame со столбцом 'Clearance Time' в следующем формате.
Время растаможивания 2 дня 22:43:00 1 день 12:32:23 5 дней 23:44:13 . . . .
Мне нужно преобразовать все серии timedelta в колонке 'Clearance Time' в числовые часы. Я применил следующие коды:
import pandas as pd
import datetime
def convert_to_hours(time_string):
time = datetime.datetime.strptime(time_string, '%d days %H:%M:%S')
delta = datetime.timedelta(days=time.day, hours=time.hour, minutes=time.minute, seconds=time.second)
return delta.total_seconds()/3600
timeData = pd.Series(mainData_Frame['Clearance Time'])
num_Hours = timeData.apply(convert_to_hours)
print(num_Hours)
Но получил следующие ошибки:
TypeError: аргумент 1 в strptime() должен быть str, а не Timedelta
Я новичок в python и у меня есть некоторый проект относительно этого, пожалуйста, помогите разобраться.
Здесь не нужна функция, используйте панды built-ins :
ser = pd.to_timedelta(mainData_Frame["Clearance Time"])
timeData = ser.dt.total_seconds().div(3600)
Выход :
print(timeData)
0 70.716667
1 36.539722
2 143.736944
Name: Clearance Time, dtype: float64