2016-04-03 3 views
0
rng = pd.date_range('2016-02-07', periods=7, freq='D') 
print(rng[0].day) 
print(rng[0].month) 

7 
2 

Je veux la sortie avec un zéro matelassé. i.e:Pandas: Comment obtenir timestamp.day et timestamp.month avec zéro matelassé

07 
02 

a) Y a-t-il une fonction prête à changer le format du .jour et du .month?

b) Existe-t-il un autre moyen d'obtenir le jour et le mois avec un zéro matelassé?

J'ai déjà essayé ce qui suit:

rng = pd.date_range('2016-02-07', periods=7, freq='D') 
r=str(rng[0]) 

d = datetime.strptime(r[:10], '%Y-%m-%d') #[:10] this removes time from date 
z= (date.strftime(d, "%d")) 
print(z) 

sortie:

07 

Merci.

+0

Si ma réponse résolu à votre question, vous pouvez l'accepter, il y aura une coche vide à En haut à gauche de ma réponse, c'est ainsi que cette question ne reste pas sans réponse – EdChum

Répondre

0

La rng variables est de Timestamp DTYPE:

rng[0] 
Timestamp('2016-02-07 00:00:00', offset='D') 

Horodatage peut être mis en forme avec une fonction standard de type c strftime comme:

rng[0].strftime('%d') 
'07' 
rng[0].strftime('%m') 
'02' 

S'il vous plaît noter, ce sont des chaînes.

Vous pouvez trouver des informations supplémentaires sur le formatage datetime ici https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior

+0

Merci Sergey. Oui, la sortie est une chaîne, j'ai besoin de le convertir au format approprié. – revoltman

1

IIUC vous pouvez utiliser strftime:

In [8]: 
rng = pd.date_range('2016-02-07', periods=7, freq='D') 
days = rng.strftime('%d') 
months = rng.strftime('%m') 
print(days) 
print(months) 

['07' '08' '09' '10' '11' '12' '13'] 
['02' '02' '02' '02' '02' '02' '02'] 
+0

Merci pour votre aide. C'est maintenant clair pour moi. – revoltman