我试图在DataFrame中添加一个新列,并希望它返回两个其他列中两个日期之间的月份差值。
到目前为止,我已经尝试了几种方法,包括:
df['TimeInJob'] = (df['OrderDate'] - df['HireDate'] / 360)
to_timedelta
方法和不同的参数设置 for i in df.index:
df.at[i, 'diff'] = relativedelta.relativedelta(df.ix[i, 'start'], df.ix[i, 'end'])
这是我最近的尝试:
from dateutil.relativedelta import relativedelta
df['MonthsInJob'] = relativedelta(qf['OrderDate'], df['HireDate'])
但收到错误消息:“ ValueError:系列的真值不明确。请使用a.empty,a.bool(),a.item(),a.any()或a.all()。”我不知道在哪里包含真值
我需要新的列才能显示月份差异
答案 0 :(得分:1)
我找到了这个(https://stackoverflow.com/a/42822819/10925117),它可以达到我需要的最终目的:
df['nb_months'] = ((df.date2 - df.date1)/np.timedelta64(1, 'M'))
,但仍然对如何使relativedelta方法在这里工作感到好奇。