1

我正在尝试向我的 DataFrame 添加一个新列,并希望它返回另外两个列中的两个日期之间的月差。

到目前为止,我已经尝试了几种方法,包括:

  • 只需减去日期,然后除以 360
    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()。” 我不知道在哪里包含真值

我需要新的专栏有几个月的差异

4

1 回答 1

1

我发现了这个(https://stackoverflow.com/a/42822819/10925117),它为我需要的最终目的工作: df['nb_months'] = ((df.date2 - df.date1)/np.timedelta64(1, 'M'))

但仍然对如何让 relativedelta 方法在这里工作感到好奇。

于 2019-05-20T16:45:34.650 回答