изменение года в столбце даты - PullRequest
0 голосов
/ 04 ноября 2018

У меня есть датафрейм с первым столбцом даты.

import pandas as pd    
df = pd.DataFrame({'Date': ['8/4/2014','8/5/2014','8/14/2014','8/21/2014','8/23/2015','8/24/2015']})

Я хочу изменить все 2014–2015 и 2015–2016 гг.

Я смотрел на pandas.datetime, но, похоже, у него нет такой функции. пожалуйста, помогите мне здесь. Большое вам спасибо.

Ответы [ 4 ]

0 голосов
/ 04 ноября 2018

Вам следует избегать подачи заявок. Используйте pd.offsets.Dateoffset. Это дает правильные календарные годы, независимо от високосных.

df['Date'] = pd.to_datetime(df.Date) + pd.offsets.DateOffset(years=1)

Выход:

        Date
0 2015-08-04
1 2015-08-05
2 2015-08-14
3 2015-08-21
4 2016-08-23
5 2016-08-24
0 голосов
/ 04 ноября 2018

Вы можете попробовать это:

df['Date'] = pd.to_datetime(df['Date'])
df['Date'] = df['Date'].apply(lambda x: x.replace(year = x.year + 1))

Вы также можете использовать pd.Timedelta

df['Date'] + pd.Timedelta(days = 365)

Альтернативой является pd.DateOffset:

df['Date'] = df['Date'] + pd.DateOffset(years=1)
0 голосов
/ 04 ноября 2018

Вот простая замена строки без использования методов datetime:

df['Date'].replace('2015', '2016', regex=True).replace('2014', '2015', regex=True)

Таким образом, вам не нужно менять все годы в кадре данных, если это вызывает беспокойство.

0 голосов
/ 04 ноября 2018

Используйте timedelta. Вы можете добавить день с помощью '+ timedelta (days = 1)'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...