Получение общего количества секунд из столбца time_delta python

Я преобразовал переменную col1 вto_time_deltaно теперь я хотел бы создать новый столбец, который дает мне общее количество секунд col1. Как я могу это получить? вот мой код:импорт данных

data = pd.read_csv(source + 'clustering_CB\\AAA_tableau_jan_oct_19_cardiologia.txt' ,sep='\t' , engine='python')

преобразование col1 в timedelta:

ck = pd.to_timedelta(data['col1'], unit='ns')

вот образец col1:

00:10:30

Теперь я хотел бы создать еще один столбец в базе данных ck, который возвращает мне общее количество секунд col1, поэтому я ожидаю найти, например, преобразование в секундах00:10:30итак: 630 секунд

1 ответ

Решение

Когда ты написал ck = pd.to_timedelta(data['col1'], unit='ns') ваш ck больше нет оригинала col1, поскольку вы пишете "для создания другого столбца", я предполагаю, что вы хотите добавить новые столбцы, тогда вы можете использовать следующий код:

После вашего data = pd.read_csv(...:

data['td'] = pd.to_timedelta(data['col1'], unit='ns')
data['secs'] = data['td'].dt.seconds

даст вам что-то вроде:

      col1              td           secs
0   7291413234      00:00:07.291413    7
1   3245345223423   00:54:05.345223   3245

Протестировано на ноутбуке Jupyter с:

import pandas as pd
import io

temp2=u"""col1
7291413234
3245345223423
"""
data = pd.read_csv(io.StringIO(temp2),sep='\t' , engine='python')
data['td'] = pd.to_timedelta(data['col1'], unit='ns')
data['secs'] = data['td'].dt.seconds
data

Примечание:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.dt.seconds.html

Количество секунд (>= 0 и менее 1 дня) для каждого элемента.

ДОБАВЛЕНО после комментария: total_seconds вернет float:

data['secs2'] = data['td'].dt.total_seconds()
data
        col1          td            secs    secs2
0   7291413234      00:00:07.291413 7       7.291413
1   3245345223423   00:54:05.345223 3245    3245.345223
Другие вопросы по тегам