J'ai besoin de faire cette chose simple:
dates = p.to_datetime(p.Series(['20010101', '20010331']), format = '%Y%m%d')
dates.str
Mais a obtenir une erreur. Comment devrais-je transformer de date-heure en chaîne
Merci d'avance
Il n'y a pas d'accesseur str
pour les dates-heures et vous ne pouvez pas faire dates.astype(str)
non plus, vous pouvez appeler apply
et utiliser datetime.strftime
:
In [73]:
dates = pd.to_datetime(pd.Series(['20010101', '20010331']), format = '%Y%m%d')
dates.apply(lambda x: x.strftime('%Y-%m-%d'))
Out[73]:
0 2001-01-01
1 2001-03-31
dtype: object
Vous pouvez changer le format de vos chaînes de date en utilisant ce que vous voulez: https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior
mettre à jour
À partir de la version 0.17.0
vous pouvez le faire avec dt.strftime
dates.dt.strftime('%Y-%m-%d')
va maintenant travailler
A partir de la version 17.0, vous pouvez formater avec l'accesseur dt
:
dates.dt.strftime('%Y-%m-%d')
Il existe une fonction pandas qui peut être appliquée à l’indice DateTime dans le cadre de données pandas.
date = dataframe.index #date is the datetime index
date = dates.strftime('%Y-%m-%d') #this will return you a numpy array, element is string.
dstr = date.tolist() #this will make you numpy array into a list
l'élément dans la liste:
u'1910-11-02'
Vous devrez peut-être remplacer le "u".
Il pourrait y avoir quelques arguments supplémentaires que je devrais mettre dans les fonctions précédentes.