Посмотрите и убедитесь, что это то, что вы хотели:
import pandas as pd
df = pd.DataFrame(['23:57', '10:39', '4:03'], columns=['Time'])
Этот фрейм данных выглядит следующим образом:
Time
0 23:57
1 10:39
2 4:03
Тогда мы можем применить эту функцию к нашему столбцу:
df['Time'].apply(lambda x: int(pd.to_timedelta(pd.to_datetime(x, format='%H:%M').strftime('%H:%M:00'), unit='m').total_seconds()/60))
Из которых на выходе получается:
0 1437
1 639
2 243
Name: Time, dtype: int64
Здесь мы используем apply для применения одной и той же функции ко всем элементам столбца.
- Преобразовать вформат даты и времени (здесь я указал формат, используя «% H:% M», чтобы обеспечить явное преобразование времени в часы и минуты.
- Отформатируйте время с помощью дополнительного элемента секунд, добавив «: 00», используяstrftime, это потому, что pd.to_timedelta будет хотеть время в формате 'чч: мм: сс'
- Затем мы получим total_seconds () timedelta и разделим на 60, чтобы получить минуты
- Преобразовать в целое число, чтобы получить окончательный формат.