在Python中减去日期类型数据的列

问题描述 投票:0回答:1

我有下一个例子

    import pandas as pd


data = {
    'id_number': ['000001000', '000009795', '000011722'],
    'first_date': ['2022-01-08 13:41:00', '2022-11-07 09:16:00', '2022-02-15 12:46:00'],
    'last_date': ['2023-06-13 16:33:00', '2022-11-30 12:59:00', '2022-06-21 11:42:00']
}
df_test = pd.DataFrame(data)

# Try to calculate the difference in months
df_test['first_date'] = pd.to_datetime(df_test['first_date'])
df_test['last_date'] = pd.to_datetime(df_test['last_date'])
df_test['months_difference'] = (df_test['last_date'] - df_test['first_date']) // pd.Timedelta('1 month')

df_test

但是错误是

ValueError: invalid unit abbreviation: month

有什么方法可以计算这个差异吗?

python pandas dataframe datetime
1个回答
0
投票

您可以尝试以下方法:

df_test['months_difference'] = (df_test.last_date -df_test.first_date)/numpy.timedelta64(1, 'M')

这将为您提供浮点数形式的月份差异,如果您想要它们作为整数,请添加

df_test['months_difference'] = df_test['months_difference'].astype(int)
© www.soinside.com 2019 - 2024. All rights reserved.