我正在尝试创建一个列'planned_off_hire_date‘,基本上是'complete_date’加上'hire_duration‘专栏中的周数。
My df:
complete_date hire_duration_wks planned_off_hire_date
2020-12-27 13.0 NaT
2020-12-30 15.0 NaT
2020-12-31 16.0 NaT
2021-3-1 17.0 NaT
2021-1-18 18.0 NaT
2021-1-14 13.0 NaT
2021-1-18 14.0 NaT我的代码:
df['hire_duration_wks'] = pd.to_numeric(df['hire_duration_wks'])
df['planned_off_hire_date'] = df['complete_date'] + pd.DateOffset(weeks=(df['hire_duration_wks']))错误:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().预期结果:
complete_date hire_duration_wks planned_off_hire_date
2020-12-27 13.0 2021-3-28
2020-12-30 15.0 2021-4-14
2021-4-10 3.0 2021-5-1谢谢你的帮助!
发布于 2021-04-10 19:16:35
而不是使用这个:
df['planned_off_hire_date'] = df['complete_date'] + pd.DateOffset(weeks=(df['hire_duration_wks']))利用apply()方法:
df['planned_off_hire_date']=df['complete_date'] + df['hire_duration_wks'].apply(lambda x:pd.DateOffset(weeks=x))注释:,上面的方法给出警告,所以忽略它,因为它是警告而不是错误
现在,如果您打印df,您将得到您想要的输出:
complete_date hire_duration_wks planned_off_hire_date
0 2020-12-27 13.0 2021-03-28
1 2020-12-30 15.0 2021-04-14
2 2020-12-31 16.0 2021-04-22
3 2021-03-01 17.0 2021-06-28
4 2021-01-18 18.0 2021-05-24
5 2021-01-14 13.0 2021-04-15
6 2021-01-18 14.0 2021-04-26https://stackoverflow.com/questions/67038279
复制相似问题