2017-02-23 1 views
0

J'ai une colonne nommée Date d'ouverture, c'est un champ de date. Son dtype est datetime64 [ns]. Ce que j'essaie de faire est de parcourir toutes les dates de mon dataframe dans la colonne Date d'ouverture et ensuite de créer une nouvelle colonne avec des dates spécifiques. Mon format date ressemble à ceci:regroupement par mois et Filtrage par trimestre

'2012-05-16' 

Je me demandais s'il y a un moyen de parcourir les dates et ne me ramener les dates qui sont les mois de janvier, février, mars, puis avril, peut , juin et juillet, août, sep, et enfin oct, nov, dec, les mettre dans une colonne séparée que je peux filtrer par trimestre donc pour jan, feb, mar, ce serait Q1 et ensuite la prochaine série de trois serait Q2 et ainsi de suite, et les années ne sont pas toutes les mêmes, c'est pourquoi je veux regrouper et filtrer par trimestre.

'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' 

J'ai essayé d'utiliser datetime et les groupes, mais je ne peux pas sembler les obtenir dans leur propre colonne et je ne veux pas que les dates soient tributaires de l'année, je veux juste tirer les dates par mois (trimestre) donc, peu importe l'année, ils les ramènent toujours selon le trimestre où ils tombent.

Répondre

0

Vous pouvez créer une colonne supplémentaire avec le quart numérique de chaque date avec l'attribut quarter, puis filtrer en fonction de cela.

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

Travaillé parfaitement, merci! Je ne savais pas que c'était aussi simple. – Cannon

+0

Serait bien si vous pouviez accepter cette réponse. – languitar

+0

Désolé je pensais que j'avais, merci encore pour l'aide! – Cannon