我只想加入日期列的日期,以使其看起来像day-ahead_2019或day-ahead_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不起作用
df.DELIVERY_PERIOD == 'day-ahead' = df.str.cat(df.Date.dt.year)
错误出现,因为它不是str类型数据我想到了另一种方式这是创建新列以从日期开始获得一年但是我认为这将是很长的路我欢迎任何建议
我会这样做,
假设您的数据帧称为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