将分类季节列从现有日期列添加到数据帧中



我有这个数据帧:

print(data)

date      time month
0   2017-01-10  00:00:00   Jan
1   2017-01-17  00:00:00   Jan
2   2017-01-24  00:00:00   Jan
3   2017-01-31  00:00:00   Jan
4   2017-02-07  00:00:00   Feb
..         ...       ...   ...
220 2021-04-27  00:00:00   Apr
221 2021-05-03  00:00:00   May
222 2021-05-10  00:00:00   May
223 2021-05-17  00:00:00   May
224 2021-05-25  00:00:00   May

如何添加与季节相对应的新列?即分类值WinterSpringSummerFall,因此我的新数据帧如下所示:

print(data)

date      time month  season
0   2017-01-10  00:00:00   Jan  winter
1   2017-01-17  00:00:00   Jan  winter
2   2017-01-24  00:00:00   Jan  winter
3   2017-01-31  00:00:00   Jan  winter
4   2017-02-07  00:00:00   Feb  winter
..         ...       ...   ...
220 2021-04-27  00:00:00   Apr  spring
221 2021-05-03  00:00:00   May  spring
222 2021-05-10  00:00:00   May  spring
223 2021-05-17  00:00:00   May  spring
224 2021-05-25  00:00:00   May  spring

只需创建一个字典映射,然后使用apply,如此-

season_dict = {'January': 'Winter',
'February': 'Winter',
'March': 'Spring', 
'April': 'Spring',
'May': 'Spring',
'June': 'Summer',
'July': 'Summer',
'August': 'Summer',
'September': 'Fall',
'October': 'Fall',
'November': 'Fall',
'December': 'Winter'}
df['Season'] = df['Month'].apply(lambda x: season_dict[x])

最新更新