Convertir le type de colonne DataFrame de string en datetime

Comment puis-je convertir une colonne DataFrame de chaînes (au format JJ/mm/AAAA) en datetimes?

165
demandé sur Andy Hayden 2013-06-16 19:14:58

3 réponses

, Le plus simple est d'utiliser to_datetime:

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

Il offre également un argument dayfirst pour les temps européens (mais attention ce n'est pas strict ).

Ici, il est en action:

In [11]: pd.to_datetime(pd.Series(['05/23/2005']))
Out[11]:
0   2005-05-23 00:00:00
dtype: datetime64[ns]

Vous pouvez passer un format spécifique :

In [12]: pd.to_datetime(pd.Series(['05/23/2005']), format="%m/%d/%Y")
Out[12]:
0   2005-05-23
dtype: datetime64[ns]
276
répondu Andy Hayden 2015-12-24 22:47:55

Si votre colonne date est une chaîne au format '2017-01-01' vous pouvez utiliser pandas astype pour le convertir en datetime.

df['date'] = df['date'].astype('datetime64[ns]')

Ou utilisez datetime64 [D] si vous voulez une précision de jour et non des nanosecondes

print(type(df_launath['date'].iloc[0]))

Rendements

<class 'pandas._libs.tslib.Timestamp'> la même chose que lorsque vous utilisez pandas. to_datetime

Vous pouvez l'essayer avec d'autres formats puis '% Y - % m - % D ' mais au moins cela fonctionne.

17
répondu sigurdb 2017-06-26 16:11:55

Vous pouvez utiliser ce qui suit si vous voulez spécifier des formats difficiles:

df['date_col'] =  pd.to_datetime(df['date_col'], format='%d/%m/%Y')
4
répondu Ekhtiar 2018-05-02 08:14:16