Могу ли я использовать Pandas DateOffset с количеством дней смещения, указанным в другом столбце? - PullRequest
1 голос
/ 03 августа 2020

У меня есть pandas DataFrame со столбцом дат. Я хотел бы создать новый столбец, который принимает исходную дату и смещает ее на количество дней, указанное в другом столбце.

Мне удалось заставить это работать:

import pandas
...
df['End Date'] = df['Start Date'] + pandas.DateOffset(days=1)

Но вместо days = 1 я хотел бы вставить df ['Number of Days']

Однако я получаю TypeError : Неверный тип . Должен быть int или float.

df ['Number of Days'] - это тип int64, поэтому я считаю, что он должен работать. Что я здесь делаю не так? Или дней должно быть c?

1 Ответ

1 голос
/ 03 августа 2020

Вы можете преобразовать Количество дней в timedelta, а затем просто добавить.

df = pd.DataFrame({'Start Date': ['2020-01-01','2020-01-10']
                  ,'Number of Days': [5,10]})

df['Start Date'] = pd.to_datetime(df['Start Date'])
df['Number of Days'] = pd.to_timedelta(df['Number of Days'], unit= 'D')
df['End Date'] = df['Start Date'] + df['Number of Days']

df.head()
#output
    dates       days    end Dates
0   2020-01-01  5 days  2020-01-06
1   2020-01-10  10 days 2020-01-20
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...