Получение общего количества секунд из столбца 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