J'ai une colonne I_DATE de type chaîne (objet) dans un cadre de données appelé train comme indiqué ci-dessous.
I_DATE
28-03-2012 2:15:00 PM
28-03-2012 2:17:28 PM
28-03-2012 2:50:50 PM
Comment convertir I_DATE d'une chaîne au format datatime et spécifier le format de la chaîne d'entrée. J'ai vu quelques réponses à cela, mais ce n'est pas pour le format AM/PM.
Aussi, comment filtrer les lignes en fonction d'une plage de dates dans les pandas?
Utilisation to_datetime
, il n’est pas nécessaire de disposer d’une chaîne de format dont l’analyseur est suffisamment homme/femme pour le gérer:
In [51]:
pd.to_datetime(df['I_DATE'])
Out[51]:
0 2012-03-28 14:15:00
1 2012-03-28 14:17:28
2 2012-03-28 14:50:50
Name: I_DATE, dtype: datetime64[ns]
Pour accéder au composant date/jour/heure, utilisez l’accesseur dt
:
In [54]:
df['I_DATE'].dt.date
Out[54]:
0 2012-03-28
1 2012-03-28
2 2012-03-28
dtype: object
In [56]:
df['I_DATE'].dt.time
Out[56]:
0 14:15:00
1 14:17:28
2 14:50:50
dtype: object
Vous pouvez utiliser des chaînes pour filtrer à titre d'exemple:
In [59]:
df = pd.DataFrame({'date':pd.date_range(start = dt.datetime(2015,1,1), end = dt.datetime.now())})
df[(df['date'] > '2015-02-04') & (df['date'] < '2015-02-10')]
Out[59]:
date
35 2015-02-05
36 2015-02-06
37 2015-02-07
38 2015-02-08
39 2015-02-09