获得一个日期列,其值为:"1997-08-05T00:00:00"
从1997年到2017年,每周工作5个工作日。
我想在数据集中创建一个新列,用于计算日期的四分之一。 例如:
1997-01-01 to 1997-03-31 should become Q1
1997-04-01 to 1997-06-30 should become Q2
1997-07-01 to 1997-09-30 should become Q3
1997-10-01 to 1997-12-31 should become Q4
不仅是1997年,而是2017年之前的所有日期都应该在名为“季度”的新栏目中得到一个值。 如果不管年份如何,01-01到03-31之间的日期都是Q1,那么将是很好的,等等
(所有日期都是这样的:1997-08-05T00:00:00
但我不需要T00:00:00
部分
答案 0 :(得分:2)
只要您的日期列采用日期时间格式,您就可以使用pandas to_period函数。
df['quarter'] = df['Date'].dt.to_period('Q')
将以类似2017Q3的格式返回季度。然后你可以通过以下方式删除年份:
df['quarter'] = df['quarter'].apply(lambda x: str(x)[-2:])
将为您提供Q1,Q2,Q3,Q4值的列。
答案 1 :(得分:0)
使用“季度”。
例如:
pd.to_datetime(pd.DataFrame(['1997-08-05T00:00:00'])[0]).dt.quarter
>>>3
然后只需在数字前添加“Q”字母。