pandas условный str concat со столбцом Datetime - PullRequest
0 голосов
/ 15 мая 2019

Я хотел бы присоединиться только на день вперед к году в столбце «Год», чтобы он выглядел как день-вперед_2019 или день-вперед_2018 в зависимости от года в столбце «Дата»

У меня есть два столбца:

DELIVERY_PERIOD   
day-ahead
day-ahead
day-ahead
day-ahead
week1_2019
week2_2018

и,

Date
13/05/2019
14/05/2019
11/05/2019
10/05/2019

Я пытался использовать str.cat, но он не работает для datetime64 для моего столбца Date

       df.DELIVERY_PERIOD == 'day-ahead' = df.str.cat(df.Date.dt.year)

ошибка возникла какэто не данные типа str, я думал о другом способе создания новых столбцов, чтобы получить год из Date.dt.year, преобразовать его в str и присоединиться только на день вперед, но я думаю, что это будет далекоЯ приветствую любые предложения

1 Ответ

0 голосов
/ 15 мая 2019

Я бы сделал это так,

при условии, что ваш фрейм данных называется df

Вы можете передать функцию astype, чтобы преобразовать вашу серию в строку и передать ее вашей новой или существующей серии.

df['DELIVERY_PERIOD'] = df.loc[df['DELIVERY_PERIOD'] == 'day-ahead', 'DELIVERY_PERIOD'] = df['DELIVERY_PERIOD'] + '_' + df['Date'].dt.year.astype(str)
print(df)


 DELIVERY_PERIOD    Date
0   day-ahead_2019  2019-05-13
1   day-ahead_2019  2019-05-14
2   day-ahead_2019  2019-11-05
3   day-ahead_2019  2019-11-05
...