Pandas: как рассчитать Timedelta в месяцах


Вы можете использовать следующую функцию для вычисления временной дельты в месяцах между двумя столбцами кадра данных pandas:

def month_diff(x, y):
 end = x. dt.to_period('M'). view (dtype='int64')
 start = y. dt.to_period('M'). view (dtype='int64')
 return end-start

В следующем примере показано, как использовать эту функцию на практике.

Пример: рассчитать Timedelta в месяцах в Pandas

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'event': ['A', 'B', 'C'],
 'start_date': ['20210101', '20210201', '20210401'],
 'end_date': ['20210608', '20210209', '20210801'] })

#convert start date and end date columns to datetime
df['start_date'] = pd.to_datetime(df['start_date'])
df['end_date'] = pd.to_datetime(df['end_date'])

#view DataFrame
print(df)

 event start_date end_date
0 A 2021-01-01 2021-06-08
1 B 2021-02-01 2021-02-09
2 C 2021-04-01 2021-08-01

Теперь предположим, что мы хотим рассчитать разницу во времени (в месяцах) между столбцами start_date и end_date .

Для этого мы сначала определим следующую функцию:

#define function to calculate timedelta in months between two columns
def month_diff(x, y):
 end = x. dt.to_period('M'). view (dtype='int64')
 start = y. dt.to_period('M'). view (dtype='int64')
 return end-start

Далее мы будем использовать эту функцию для вычисления временной разницы в месяцах между столбцами start_date и end_date :

#calculate month difference between start date and end date columns
df['month_difference'] = month_diff(df.end_date , df.start_date )

#view updated DataFrame
df

 event start_date end_date month_difference
0 A 2021-01-01 2021-06-08 5
1 B 2021-02-01 2021-02-09 0
2 C 2021-04-01 2021-08-01 4

В столбце month_difference отображается разница во времени (в месяцах) между столбцами start_date и end_date .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:

Как преобразовать столбцы в DateTime в Pandas
Как преобразовать дату и время в дату в pandas
Как извлечь месяц из даты в Pandas

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.