Как добавить в ячейки разные значение годов и перевести все в формат "ДАТЫ"?

У меня есть ДатаФрейм с колонкой "ДАТА" , в котором указаны строки в формате ("День.Месяц"). Я хочу добавить половине строк по индексу [0:124] - "2021" год, а оставшимся [125:] - "2022" год

Как это лучше сделать? Метод Datetime мне почему то не удается использовать, я пытался создать две новые колонки, просто добавляя год:

df ['new_col1'] = df['ДАТА'].iloc[0:124] + '.2021'
df['new_col2'] = df['ДАТА'].iloc[125:] + '.2022'

Но по итогу я получаю две колонки но в них часть строк NaN, далее я думал что просто сложу их, получив новую колонку которую переведу в формат Даты и удалю старую:

df['new_col1'] + df['new_col2']

Но это приводит к тому, что в этой колонке все значения NaN...

Подскажите в каком направлении мыслить, что нужно сделать ? Спасибо!


Ответы (1 шт):

Автор решения: CrazyElf

Присваивания идут с учётом индексов. Проще всего наверное так обойти проблемы, присвоив новой колонке сразу все значения столбца, а не часть:

df['new_col'] = pd.concat([df['ДАТА'].iloc[0:124] + '.2021',
                           df['ДАТА'].iloc[125:] + '.2022'])

В вашем варианте там, где у колонки нет справа от знака присваивания соответствующих значения для индексов нового столбца, получается NA в этих ячейках. И при сложении NA со строкой тоже получается NA. Поэтому в итоге NA одной колонки и NA другой колонки в итоге дают целую колонку NA.

→ Ссылка