3
votes

Pandas - Comment extraire HH: MM de la colonne datetime en Python?

Je veux juste extraire de mon df HH: MM. Comment faire?

Voici une description de la colonne dans le df:

count                     810
unique                    691
top       2018-07-25 11:14:00
freq                        5
Name: datetime, dtype: object

La valeur de la chaîne comprend un horodatage complet. Le but est d'analyser le HH: MM de chaque ligne dans un autre df, et de revenir en boucle et d'extraire uniquement le % Y-% m-% d dans un autre df.


0 commentaires

3 Réponses :


1
votes

Première conversion en datetime:

df2['datetime'] = df['datetime'].dt.strptime('%H:%M')
df3['datetime'] = df['datetime'].dt.strptime('%Y-%m-%d')

Ensuite, vous pouvez faire:

df['datetime'] = pd.to_datetime(df['datetime'])


2 commentaires

Quelle hypothèse faites-vous ici? D'où vient le dt ? Cela se traduit par une AttributeError pour moi. Si je fais à partir de datetime import datetime en tant que dt , cela se traduit par un objet DatetimeProperties n'a pas d'attribut strptime .


Je ne peux pas mettre à jour mon commentaire, alors comprenez le dt maintenant - c'est l'accesseur. strftime est uniquement disponible, pas strptime



0
votes

Solution générale (non basée sur les pandas)

11:14

Sortie

import time
top = '2018-07-25 11:14:00'
time_struct = time.strptime(top, '%Y-%m-%d %H:%M:%S')
short_top = time.strftime('%H:%M', time_struct)
print(short_top)


0 commentaires

12
votes

Supposons que le df ressemble à

print(df)

             date_col
0 2018-07-25 11:14:00
1 2018-08-26 11:15:00
2 2018-07-29 11:17:00
#convert from string to datetime
df['date_col'] = pd.to_datetime(df['date_col']) 

#to get date only
print(df['date_col'].dt.date)
0    2018-07-25
1    2018-08-26
2    2018-07-29

#to get time:
print(df['date_col'].dt.time)

0    11:14:00
1    11:15:00
2    11:17:00
#to get hour and minute
print(df['date_col'].dt.strftime('%H:%M'))
0    11:14
1    11:15
2    11:17


0 commentaires