оптимизировать функцию даты для временных рядов - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть набор данных со столбцом времени (в секундах), я хочу создать еще один столбец с полной датой и временем (гг / мм / дд ч: м: с), поэтому я написал функцию ниже, но это занимает слишком много времени для большие наборы данных, какой совет, как я могу оптимизировать его?

Время столбца выглядит так

0     0.0
1     0.2
2     0.4
3     0.6
4     0.8
5     1.0
6     1.2
7     1.4
8     1.6
9     1.8
10    2.0
11    2.2
12    2.4
13    2.6
14    2.8
15    3.0
16    3.2
17    3.4
18    3.6
19    3.8
20    4.0

функция

def calcul_datetime(ds,h,m,s,Y,M,D):


    for index,row in ds.iterrows():


        if row.Time.is_integer()==True and row.Time!=0:

            s=s+1
            if s==60:

                m=m+1
                s=0
                if m==60:
                    h=h+1
                    m=0
                    if h==24:
                        D=D+1
                        h=0
        ds.iloc[index,9]="{Y}-{M}-{D} {heure}:{min}:{sec}".format(Y=Y, M=M, D=D ,heure=h,min=m,sec=s)

    return ds  ```

1 Ответ

0 голосов
/ 17 апреля 2019

В модуле datetime есть почти все, что вам нужно для вычисления времени и даты.

В частности, метод datetime.datetime.fromtimestamp преобразует секунды , начиная с эпохи , в * 1007.* объект.Этот объект затем имеет удобный метод для представления строки: datetime.datetime.strftime.

Вот пример:

import datetime

some_arbitrary_time_value = 10000000
as_a_datetime = datetime.datetime.fromtimestamp(some_arbitrary_time_value)
as_a_string = as_a_datetime.strftime("%Y-%m-%d %H:%M:%S")
print(as_a_string)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...