2017-02-23 87 views
0

我有一个名为Date Opened的列,它是一个日期字段。它的dtype是datetime64 [ns]。我想要做的是在日期打开列中运行数据框中的所有日期,然后以某种方式创建具有特定日期的新列。我的日期格式如下:按月分组和按季度筛选

'2012-05-16' 

我想知道是否有任何方式通过的日期运行,只给我带回日期是在一月,二月,三月的几个月,然后四月,可以jun,然后是jul,aug,sep,最后是oct,nov,dec,把它们放到一个单独的列中,我可以每季度过滤一次,所以对于jan,feb,mar,这将是Q1,然后是下一个三将会是第二季度等等,而且年份并不完全相同,所以这就是为什么我想按季度分组和过滤的原因。

'2012-01-03', '2013-02-03', '2012-03-12' 
'2012-01-10', '2013-02-07', '2012-03-13' 
'2012-01-13', '2013-02-15', '2012-03-18' 
'2012-01-16', '2013-02-19', '2012-03-20' 
'2012-01-22', '2013-02-20', '2012-03-21' 
'2012-01-23', '2013-02-21', '2012-03-25' 
'2012-01-28', '2013-02-28', '2012-03-27' 

我一直在使用datetime和他们组尝试,但我似乎无法让他们在自己的列,我不想日期是同比依赖,我想只是拉的具体日期,按月份(季度),所以不管是哪一年,他们还是按照他们所属的季度带入。

回答

0

您可以使用quarter属性创建每个日期的数字四分之一的附加列,然后基于该属性进行过滤。

In [17]: df = pd.DataFrame({'Date Opened': s, 'foo': ['test', 'bar']}) 

In [18]: df 
Out[18]: 
    Date Opened foo 
0 2016-12-14 test 
1 2014-03-12 bar 

In [19]: df['quarter'] = df['Date Opened'].dt.quarter 

In [20]: df 
Out[20]: 
    Date Opened foo quarter 
0 2016-12-14 test  4 
1 2014-03-12 bar  1 
+0

工作完美,谢谢!我不知道这很简单。 – Cannon

+0

如果你能接受这个答案,会很好。 – languitar

+0

对不起,我以为我有,再次感谢您的帮助! – Cannon