Преобразование столбца, содержащего строковый формат времени, в минуты

#python #pandas #dataframe #time

Вопрос:

Я содержу временные рамки данных, в которых есть время в этом формате:

 df = pd.DataFrame({'Time': ['20hours 10minutes', '18hours 10minutes',
                            '15minutes', '1minutes']})
                Time
0  20hours 10minutes
1  18hours 10minutes
2          15minutes
3           1minutes
 

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

Ответ №1:

Вы можете использовать pd.to_timedelta() для анализа строк времени и использовать pd.Timedelta.total_seconds() для получения общего количества секунд для преобразования в минуты, как показано ниже:

 df['minutes'] = pd.to_timedelta(df['Time']).dt.total_seconds() / 60
 

Результат:

                 Time  minutes
0  20hours 10minutes   1210.0
1  18hours 10minutes   1090.0
2          15minutes     15.0
3           1minutes      1.0
 

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

1. Вау, это действительно простое решение. Отлично сработано, я чесал голову над этим