как агрегировать время в пандах - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть столбец в большом CSV-файле, который имеет временные метки в формате% H:% M:% S.Как лучше всего получить агрегацию (например, среднее значение, медиана, 25%, 75% и т. Д.) Из списка временных меток.

df = pd.DataFrame({'key': ['a', 'b', 'c'], 'value': [5, 4, 3], 'time1':['9:30:41', '10:00:56', '13:01:09']})

1 Ответ

0 голосов
/ 27 сентября 2018

Вы можете использовать time delta для преобразования в строку в период времени, это позволит arithmetic operation сложения и вычитания по временной метке,

df.time1 = pd.to_timedelta(df.time1)
df.sum()

Out:

key                  abc
time1    1 days 08:32:46
value                 12
dtype: object

Но для умножения и деления включает mean and other, вы можете преобразовать timestamp to seconds и применить

df.time1 = pd.to_timedelta(df.time1)/np.timedelta64(1, 's')

Out:

    key time1   value
0   a   34241.0 5
1   b   36056.0 4
2   c   46869.0 3

После того, как ваша операция будет выполнена, вы можете преобразоватьназад к отметке времени с pd.to_timedelta with 'seconds' u нит

pd.to_timedelta(df.time1,unit='s')

Out:

0   09:30:41
1   10:00:56
2   13:01:09
Name: time1, dtype: timedelta64[ns]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...