Python根据Date列计算新列

时间:2017-08-05 12:46:30

标签: python pandas date

获得一个日期列,其值为:"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部分

2 个答案:

答案 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”字母。