Добавить столбец месяцев в столбец даты в Pandas - PullRequest
1 голос
/ 14 июля 2020

Я хочу добавить столбец с количеством месяцев в столбец с датами. Пока я пробовал (pd.DateOffset (months = plus_month_period)), однако «месяцы» не принимают столбец, только число. Моя самая успешная попытка была следующей:

dates = {'Date': ['24/04/2019','24/04/2019','2011/05/30'], 'Months':[2,12,100]}
df = pd.DataFrame(dates, columns = ['Date','Months'])

month_sum = pd.to_datetime(df['Date']).dt.to_period('m')
df['Add_month'] = ((month_sum + np.array(df['Months'])).dt.strftime('%Y/%m')).astype(str) + '/' + (pd.to_datetime(df['Date']).dt.day).astype(str)

print(pd.to_datetime(df['Add_month']))

Это приводит к:

0   2019-06-24
1   2020-04-24
2   2023-11-30

Моя проблема с этим решением заключается в том, что при создании столбца df ['Add_month'] I ' m в основном добавляет жестко запрограммированную строку в конце в попытке добавить «дневную» часть, что иногда приводит к неточным вычислениям. Есть ли более простой способ добавить столбцы «Месяцы» и «Дата»?

1 Ответ

0 голосов
/ 14 июля 2020

Одной л oop хватило

import pandas as pd

dates = {'Date': ['24/04/2019','24/04/2019','2011/05/30'], 'Months':[2,12,150]}
df = pd.DataFrame(dates, columns = ['Date','Months'])
df['Add_month'] = pd.to_datetime(df['Date']).dt.date

months = [2,12,150]
j = 0
for i in df['Add_month']:
    print(i)
    print(i + pd.DateOffset(months=months[j]))
    j += 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...