Панды время операции - PullRequest
0 голосов
/ 31 августа 2018

У меня есть фрейм данных с информацией от брокера, данные показывают пройденное расстояние, время, проведенное и дату гонки.

DISTANCE    TIME    DATE
9.8     51:50.92    09/08/18
11.1    55:59.70    24/08/18
11.1    49:25.20    29/08/18

Я хотел бы выполнить арифметическую операцию между записями в столбце «ВРЕМЯ» , чтобы рассчитать среднюю скорость каждой гонки.

Проблема заключается в следующем:

При преобразовании текстовой строки в панд datetime она остается в следующем формате:

1900-01-01 00:51:50
1900-01-01 00:55:59
1900-01-01 00:49:25

Мне нужно время, поэтому я делаю следующее

df['TIME'] = pd.to_datetime(df['TIME'], format = '%M:%S')

Что приводит меня к следующей проблеме: столбец теперь имеет тип "объект", и я не могу выполнять над ним какие-либо операции.

Как преобразовать столбец в время , не теряя формат даты и времени? и выполнять операции с ним.

Я хотел бы, например, рассчитать скорость, разницу между временами и частотами между гонками.

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Предположим, что Расстояние - км, используйте это, чтобы получить вашу скорость в км / ч:

import pandas as pd

df=pd.DataFrame({'DISTANCE':[9.5,11.1,11.1],'TIME':['51:50.92','55:59.70','49:25.20'],'DATE':['09/08/18','24/08/18','29/08/18']})


df['TIME'] = '00:' + df['TIME']
df['TIME'] = pd.to_timedelta(df['TIME'])
df['SPEED (km/h)']=[df['DISTANCE'][i]/(df['TIME'][i].total_seconds()/3600) for i in df.index]#total_seconds() won't work with a pandas column so you need to apply it to each TIME cell
0 голосов
/ 31 августа 2018

Вместо to_datetime вы можете использовать to_timedelta. Смотрите ниже:

df['TIME'] = '00:' + df['TIME']
df['TIME'] = pd.to_timedelta(df['TIME'])

Результат этого:

   DISTANCE            TIME      DATE
0       9.8 00:51:50.920000  09/08/18
1      11.1 00:55:59.700000  24/08/18
2      11.1 00:49:25.200000  29/08/18

Теперь вы можете использовать математические операции на TIME. Однако, как упоминалось в комментарии Phung Duy Phong выше, трудно сказать, решит ли это ваши проблемы, не увидев код, который вы хотите запустить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...