web-dev-qa-db-fra.com

date-heure en chaîne avec la série dans python pandas

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

35
Diego

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

58
EdChum

A partir de la version 17.0, vous pouvez formater avec l'accesseur dt:

dates.dt.strftime('%Y-%m-%d')

référence

17
ksindi

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.

3
Qing Xia