Python: конвертировать время, выраженное в секундах, в дату и время для серии - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть столбец времени, выраженный в секундах с 1 января 1990 года, который мне нужно преобразовать в DateTime.Я могу понять, как сделать это для константы (например, добавить 10 секунд), но не для ряда или столбца.

В конце концов я попытался написать цикл для выполнения этой строки за раз.(Вероятно, не правильный путь, и я новичок в Python).

Этот код работает для одной строки:

def addSecs(secs):
    fulldate = datetime(1990,1,1)
    fulldate = fulldate + timedelta(seconds=secs)
    return fulldate

    b= addSecs(intag112['outTags_1_2'].iloc[1])

print(b)

2018-06-20 01: 05: 13

Кто-нибудь знает легкийспособ сделать это для целого столбца в кадре данных?

Я пробовал это:

for i in range(len(intag112)):
    intag112['TransactionTime'].iloc[i]=addSecs(intag112['outTags_1_2'].iloc[i])

, но он допустил ошибку.

1 Ответ

0 голосов
/ 24 февраля 2019

Если вы хотите что-то сделать со столбцом (серией) в DataFrame, вы можете использовать метод apply, например:

import datetime
# New column 'datetime' is created from old 'seconds'
df['datetime'] = df['seconds'].apply(lambda x: datetime.datetime.fromtimestamp(x))

Проверьте документацию для получения дополнительных примеров.Общий совет - попытайтесь мыслить с точки зрения векторов (или рядов) значений.Большинство операций в пандах можно выполнять с целыми сериями или даже с кадрами данных.

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