2017-02-23 30 views
0

Ich habe eine Spalte namens Date Opened, es ist ein Datumsfeld. Sein dtype ist datetime64 [ns]. Was ich versuche, ist, alle Daten in meinem Datenrahmen in der Spalte Geöffnet geöffnet durchzulesen und dann irgendwie eine neue Spalte mit bestimmten Daten zu erstellen. Meine Reisedaten Format sieht wie folgt aus:Gruppierung nach Monat und Filtern nach Quartal

'2012-05-16' 

Ich habe mich gefragt, ob es eine Möglichkeit gibt, durch die Tage zu laufen und mich nur Daten zu bringen, die in den Monaten Januar sind, feb, mar, und dann April kann , jun und dann jul, aug, sep und schließlich okt, nov, dez, setze sie in eine separate Spalte, die ich nach viertel filtern kann, also für jan, feb, mar, das wäre Q1 und dann der nächste Satz von drei wäre Q2 und so weiter, und die Jahre sind nicht alle gleich, deshalb möchte ich nach Quartal gruppieren und filtern.

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

Ich habe mit Datetime und gruppieren sie versucht, aber ich kann nicht scheinen, sie in ihrer eigenen Spalte zu bekommen, und ich will nicht die Daten darauf angewiesen Jahr sein, ich will die Daten nur ziehen in Nach Monat (Quartal) also, egal welches Jahr es ist, sie bringen sie immer noch nur nach dem Quartal, in das sie fallen.

Antwort

0

Sie können eine zusätzliche Spalte mit dem numerischen Viertel jedes Datums mit dem Attribut quarter erstellen und dann basierend darauf filtern.

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

Arbeitete perfekt, danke! Ich wusste nicht, dass es so einfach war. – Cannon

+0

Wäre schön, wenn Sie diese Antwort akzeptieren könnten. – languitar

+0

Sorry, ich dachte ich hätte Danke nochmal für die Hilfe! – Cannon