Pandas 计算工作年限出现 TypeError: incompatible type for a datetime/timedelta operation [rsub]
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)
代码解释:
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]' 错误,并正确计算员工的工作年限了。
原文地址: https://www.cveoy.top/t/topic/zKR 著作权归作者所有。请勿转载和采集!