Pandas 计算工作年限出现 'TypeError: incompatible type for a datetime/timedelta operation [rsub]' 错误

在使用 Pandas 处理数据并计算工作年限时,您可能会遇到以下错误信息:pythonTypeError: incompatible type for a datetime/timedelta operation [rsub]

错误原因分析

这个错误通常是由于在代码中使用了 pd.datetime.now().year 来获取当前年份,并试图直接将其与包含日期信息的 Series 进行减运算导致的。 pd.datetime.now().year 返回的是一个整数类型的年份值,而 Pandas Series 中的日期数据类型是 datetime64,两者无法直接进行减法运算。

解决方案

要解决这个问题,您应该使用 pd.Timestamp.now().year 来获取当前年份,并使用 .dt.year 提取 Pandas Series 中每个日期的年份值。 修改后的代码如下:python# 根据入职时间计算员工的工作年限(当前年份-入职年份),并设为新的一列。df['work_years'] = pd.Timestamp.now().year - df['start_date'].dt.yearprint('添加工作年限列后的数据:')print(df)

代码解释:

  1. pd.Timestamp.now().year 获取当前年份。2. df['start_date'].dt.year 提取 'start_date' 列中每个日期的年份值。3. 将两个年份值相减,得到工作年限,并将其赋值给新的 'work_years' 列。

请确保将代码中的 'start_date' 替换为您 DataFrame 中实际的入职日期列名。

通过以上修改,您就可以解决 'TypeError: incompatible type for a datetime/timedelta operation [rsub]' 错误,并正确计算员工的工作年限了。

Pandas 计算工作年限出现 TypeError: incompatible type for a datetime/timedelta operation [rsub]

原文地址: https://www.cveoy.top/t/topic/zKR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录