les pandas dataframe groupby datetime mois
Envisager un fichier csv:
string,date,number
a string,2/5/11 9:16am,1.0
a string,3/5/11 10:44pm,2.0
a string,4/22/11 12:07pm,3.0
a string,4/22/11 12:10pm,4.0
a string,4/29/11 11:59am,1.0
a string,5/2/11 1:41pm,2.0
a string,5/2/11 2:02pm,3.0
a string,5/2/11 2:56pm,4.0
a string,5/2/11 3:00pm,5.0
a string,5/2/14 3:02pm,6.0
a string,5/2/14 3:18pm,7.0
Je peux lire dans, et le format de la colonne de date en format datetime:
b=pd.read_csv('b.dat')
b['date']=pd.to_datetime(b['date'],format='%m/%d/%y %I:%M%p')
J'ai essayé de regrouper les données par mois. Il semble comme il devrait être d'une manière évidente de l'accès au mois de groupement et par qui. Mais je n'arrive pas à le faire. Personne ne sait comment?
Ce que je suis en train d'essayer de re-indexation par la date:
b.index=b['date']
Je peux accéder à la mois comme suit:
b.index.month
Cependant, je n'arrive pas à trouver une fonction de regrouper par mois.
Vous devez vous connecter pour publier un commentaire.
Réussi à le faire:
Ou
resample
(quand il offre les fonctionnalités dont vous avez besoin) ou utiliser unTimeGrouper
:df.groupby(pd.TimeGrouper(freq='M'))
df.groupby(pd.TimeGrouper(freq='M')).sum()
oudf.groupby(pd.TimeGrouper(freq='M')).mean()
pd.TimeGrouper
a été dépréciée en faveur depd.Grouper
, qui est un peu plus souple, mais encore fautfreq
etlevel
arguments.(mise à jour: 2018)
Noter que
pd.Timegrouper
est amorti et seront supprimés. Utiliser à la place:Une solution qui évite MultiIndex est de créer un nouveau
datetime
colonne de réglage de la date = 1. Puis de les regrouper par cette colonne. Exemple Trivial ci-dessous.Le subtil avantage de cette solution est, à la différence de
pd.Grouper
, le mérou indice est normalisé à l' début de chaque mois, plutôt que de la fin, et, par conséquent, vous pouvez facilement extraire des groupes viaget_group
:Calculer le dernier jour d'octobre est un peu plus lourd.
mp.Le mérou
, comme de v0.23, prend en charge unconvention
paramètre, mais c'est seulement applicable pour unPeriodIndex
loches.Légèrement solution alternative à @jpp mais la sortie d'un
YearMonth
chaîne: