带有DateTime列的Pandas条件str concat



我只想加入日期列的日期,以使其看起来像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

最新更新