Как преобразовать время 24 часа в общее количество секунд в кадре данных - PullRequest
0 голосов
/ 04 мая 2018

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

import pandas as pd
import random

def randomTime():

    rtime = int(random.random()*86400)

    hours   = int(rtime/3600)
    minutes = int((rtime - hours*3600)/60)
    seconds = rtime - hours*3600 - minutes*60

    time_string = '%02d:%02d:%02d' % (hours, minutes, seconds)
    return time_string

time = [randomTime() for _ in range(8)]

k = 5
N = 8

d = ({'Time' : (time),
    'Events' : ['ABC','DEF','GHI','JKL','ABC','DEF','GHI','JKL'],
    'Number1' : ['xx','xx',1,'xx','xx','xx',2,'xx'],
    'Number2' : ['xx',1,'xx',1,'xx',2,'xx',2]})

df = pd.DataFrame(data=d)

Выход:

  Events Number1 Number2      Time
0    ABC      xx      xx  07:02:30
1    DEF      xx       1  03:34:02
2    GHI       1      xx  01:38:11
3    JKL      xx       1  14:50:43
4    ABC      xx      xx  06:05:53
5    DEF      xx       2  18:50:44
6    GHI       2      xx  17:09:42
7    JKL      xx       2  21:09:28

Я могу преобразовать время в общее количество секунд и вернуться к отдельной серии, используя следующее:

Time_secs = pd.to_timedelta(df['Time']).dt.total_seconds()

Выход:

0    25350.0
1    12842.0
2     5891.0
3    53443.0
4    21953.0
5    67844.0
6    61782.0
7    76168.0

Но я хочу заменить столбец времени в кадре данных на общее количество секунд. Не экспортируйте отдельную серию, из которой я должен объединить ее обратно в df.

Так что я надеюсь произвести следующее:

  Events Number1 Number2  Time
0    ABC      xx      xx  25350.0
1    DEF      xx       1  12842.0
2    GHI       1      xx  5891.0
3    JKL      xx       1  53443.0
4    ABC      xx      xx  21953.0
5    DEF      xx       2  67844.0
6    GHI       2      xx  61782.0
7    JKL      xx       2  76168.0

1 Ответ

0 голосов
/ 04 мая 2018

Почему бы просто не присвоить результат столбцу напрямую?

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