如何在Python中将日期转换为季度标识?
把日期列转换为年份季度标识(如
2018q1)的解决方案 没问题!我来帮你快速实现将日期列转换成YYYYqQ格式的季度标识需求。用Pandas处理这类日期转换非常顺手,我给你一步步演示:
步骤说明
- 首先要把字符串格式的日期转换成Pandas能识别的
datetime类型,这样才能提取年份和季度信息 - 然后从datetime列中分别提取年份和季度,再拼接成你想要的格式
完整代码示例
import pandas as pd # 你的原始数据集 data = [ {'date': '3/22/18', 'quarter': 1}, {'date': '3/22/18', 'quarter': 1}, {'date': '6/22/18', 'quarter': 3}, {'date': '6/22/18', 'quarter': 3}, {'date': '9/22/18', 'quarter': 2}, {'date': '9/22/18', 'quarter': 2}] df = pd.DataFrame(data, index=['s1', 's2','s1','s2','s1','s2']) # 1. 将字符串日期转为datetime类型 df['date'] = pd.to_datetime(df['date']) # 2. 生成目标季度标识列 df['quarter_label'] = df['date'].dt.year.astype(str) + 'q' + df['date'].dt.quarter.astype(str) # 查看处理后的结果 print(df)
代码解释
pd.to_datetime(df['date']):自动识别你的MM/DD/YY格式日期,将字符串转为datetime对象df['date'].dt.year:提取日期对应的年份,转成字符串后用于拼接df['date'].dt.quarter:提取日期对应的季度(1=1-3月,2=4-6月,3=7-9月,4=10-12月),同样转成字符串拼接- 最终得到的
quarter_label列就是你需要的2018q1、2018q2这类格式
另外注意:你原始数据里的quarter列值存在错误(比如6月22日应该对应Q2,但你写的是3),用上面的方法就能得到正确的季度标识哦。
内容的提问来源于stack exchange,提问作者Niccola Tartaglia
相关产品推荐
相关产品推荐

