English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Пример операции с Pandas Timedelta
Инкремент времени — это разница во времени, выраженная в единицах времени, таких как день, час, минута, секунда. Они могут быть как положительными, так и отрицательными.
Используя строковое выражение, мы можем создать объект timedelta.
Мы можем создать объект Timedelta с использованием различных параметров, как показано ниже-
import pandas as pd print(pd.Timedelta('2 days 2 hours 15 minutes 30 seconds'))
Результат выполнения таков:
2 дней 02:15:30
Параметр создаст объект Timedelta, если к нему передан целое значение.
import pandas as pd print(pd.Timedelta(6,unit='h'))
Результат выполнения таков:
0 дней 06:00:00
ДанныеOffset (например, -неделя, день, час, минута, секунда, миллисекунда, микросекунда, наносекунда) также могут быть использованы при создании.
import pandas as pd print(pd.Timedelta(days=2))
Результат выполнения таков:
2 дней 00:00:00
Используя pd.to_timedelta, вы можете преобразовать скаляр, массив, список или последовательность из признанных форматов/значений timedelta в тип Timedelta. Если входные данные являются Series, то будет создан Series; если они являются скаляром, то будет создан скаляр; в противном случае, будет выведен TimedeltaIndex.
import pandas as pd print(pd.Timedelta(days=2))
Результат выполнения таков:
2 дней 00:00:00
Вы можете выполнять операции с Series / DataFrame, и с помощью вычитания datetime64 [ns] Series или Timestamps можно создать Series с Timedelta64 [ns] .
Теперь давайте создадим DataFrame с объектами Timedelta и datetime и выполним над ними некоторые арифметические операции-
import pandas as pd s = pd.Series(pd.date_range('2012-1-1', periods=3, freq='D')) td = pd.Series([pd.Timedelta(days=i) for i in range(3)]) df = pd.DataFrame(dict(A = s, B = td)) print(df)
Результат выполнения таков:
A B 0 2012-01-01 0 дней 1 2012-01-02 1 день 2 2012-01-03 2 дней
import pandas as pd s = pd.Series(pd.date_range('2012-1-1', periods=3, freq='D')) td = pd.Series([pd.Timedelta(days=i) for i in range(3)]) df = pd.DataFrame(dict(A = s, B = td)) df['C'] = df['A'] + df['B'] print(df)
Результат выполнения таков:
A B C 0 2012-01-01 0 days 2012-01-01 1 2012-01-02 1 days 2012-01-03 2 2012-01-03 2 days 2012-01-05
import pandas as pd s = pd.Series(pd.date_range('2012-1-1', periods=3, freq='D')) td = pd.Series([pd.Timedelta(days=i) for i in range(3)]) df = pd.DataFrame(dict(A = s, B = td)) df['C'] = df['A'] + df['B'] df['D'] = df['C'] + df['B'] print(df)
Результат выполнения таков:
A B C D 0 2012-01-01 0 days 2012-01-01 2012-01-01 1 2012-01-02 1 days 2012-01-03 2012-01-04 2 2012-01-03 2 days 2012-01-05 2012-01-07