python - Add categorical season column to dataframe from existing date column
问题描述
I have this dataframe:
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
How can I add a new column corresponding to the season? ie categorical values Winter
, Spring
, Summer
, Fall
so that my new dataframe looks like this:
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
解决方案
Just create a dictionary mapping, and then use apply
, as so -
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])
推荐阅读
- python - 如何在线运行python脚本?
- javascript - XPATH 获取子元素 Typescript/Javascript
- kotlin - Kotlin Companion Object 只是从接口添加功能的一种方式吗?
- javascript - 提交表单后如何重定向到某个页面
- multithreading - 让 Rust 线程脱离阻塞操作的标准方法是什么?
- c# - 部署在 Azure 上的 .NET Core App 指的是已删除的类
- java - 我的 Spring 应用程序不工作。出现 404 错误而不是 jsp 文件
- ios - 如何将纹理传递给顶点着色器?(iOS & Metal) (IOAF 代码 5)
- bash - 访问远程机器时如何在heredoc中运行for循环
- mysql - 在 CONCAT 中无法执行 MySQL SELECT 语句