在R语言中如何从%Y-%m-%d格式的Time生成Quarter?
生成季度列的实现方法
Python(Pandas)实现
- 转换时间列类型:如果
Time列还不是datetime格式,先转换为时间类型import pandas as pd df['Time'] = pd.to_datetime(df['Time'], format='%Y-%m-%d') - 生成季度列:两种方式可选
方式一:通过月份计算季度
方式二:利用周期转换方法df['Quarter'] = df['Time'].dt.year.astype(str) + ' Q' + ((df['Time'].dt.month - 1) // 3 + 1).astype(str)df['Quarter'] = df['Time'].dt.to_period('Q').astype(str).str.replace('Q', ' Q')
SQL(MySQL)实现
如果用SQL处理,直接通过内置函数生成:
SELECT Time, CONCAT(YEAR(Time), ' Q', QUARTER(Time)) AS Quarter FROM your_table;
效果验证
运行上述代码后,你的示例数据会得到如下结果:
| Time | Quarter |
|---|---|
| 2018-01-31 | 2018 Q1 |
| 2018-02-28 | 2018 Q1 |
| 2018-03-31 | 2018 Q1 |
| 2018-04-30 | 2018 Q2 |
| 2018-05-31 | 2018 Q2 |
| 2018-06-30 | 2018 Q2 |
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

