Как бы я преобразовал столбец минут для pandas кадра данных, который идет выше 59, в правильное время? - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть pandas кадр данных, который имеет 2 столбца: первый столбец - минуты, а второй столбец - секунды. Это выглядит так:

     min   s
0      0   0
1      0   1
2      0   2
3      0   3
4      0   4
5      0   5
6      0   6
7      0   7
8      0   8
9      0   9
10     0  10
11     0  11
12     0  12

Я могу преобразовать это в datetime следующим образом:

l = []
for MinSec in list(zip(df['min'],df['s'])):
    l.append(':'.join(map(str,MinSec)))

pd.to_datetime(pd.Series(l), format='%M:%S')

Однако, когда столбец min достигает 59, он продолжает считать вверх (60, 61, 62, et c.). Это приводит к ошибке:

ValueError: time data '60:0' does not match format '%M:%S' (match)

Как бы я обработал эту ошибку и успешно присоединил два вышеуказанных столбца pandas dataframe к datetime?

1 Ответ

0 голосов
/ 01 апреля 2020

Вычислить общее количество секунд:

df['total_second']=60.*df['min']+df['s'] 

Затем вы можете преобразовать его в Datetime:

pd.to_datetime(df['total_second'], unit='s')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...