Как рассчитать дисперсию в месяцах между датами с использованием относительной дельты - PullRequest
1 голос
/ 20 мая 2019

Я пытаюсь добавить новый столбец в мой 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: Значение истинности Series неоднозначно. Используйте a.empty, a.bool (), a.item (), a.any () или a.all ()». Я понятия не имею, где включить значения истины

Мне нужен новый столбец, чтобы иметь разницу в месяцах

1 Ответ

1 голос
/ 20 мая 2019

Я нашел это (https://stackoverflow.com/a/42822819/10925117), и это сработало для конечного результата, который мне был нужен: df['nb_months'] = ((df.date2 - df.date1)/np.timedelta64(1, 'M'))

но все же любопытно, как заставить метод относительной дельты работать здесь.

...