2017-10-20 46 views
0

J'ai une liste de panda créée à partir du code ci-dessous.Convertir la liste des panda en liste python des chaînes de date

import pandas as pd 
panda_datelist = pd.bdate_range(pd.datetime.today(), periods=3).tolist() 

Je voudrais convertir panda_datelist dans une liste de python. Ça devrait ressembler a quelque chose comme ca;

python_datelist_from_panda = ['10/2/2017','10/3/2017','10/4/2017'] 

J'utilise python v3.6

Répondre

1

Utilisez list comprehension

In [4553]: [x.strftime('%m/%d/%Y') for x in panda_datelist] 
Out[4553]: ['10/20/2017', '10/23/2017', '10/24/2017'] 

Ou, utilisez map

In [4554]: map(lambda x: x.strftime('%m/%d/%Y'), panda_datelist) 
Out[4554]: ['10/20/2017', '10/23/2017', '10/24/2017'] 

Mais, avant de se convertir à la liste que vous pouvez réellement utiliser strftime

In [4559]: pd.bdate_range(pd.datetime.today(), periods=3).strftime('%m/%d/%Y') 
Out[4559]: 
array([u'10/20/2017', u'10/23/2017', u'10/24/2017'], 
     dtype='<U10') 

Détails

In [4555]: panda_datelist 
Out[4555]: 
[Timestamp('2017-10-20 00:00:00', freq='B'), 
Timestamp('2017-10-23 00:00:00', freq='B'), 
Timestamp('2017-10-24 00:00:00', freq='B')] 
+0

Merci. Je ne savais pas que 'strftime' fonctionnait pour panda. Panda me donne l'impression d'être un animal totalement différent des structures de données python. – user3848207

+0

J'essaie de comprendre la solution de l'utilisation de la carte et lambda. Ils me semblent plutôt étrangers. Est-ce une sorte de programmation fonctionnelle? – user3848207