J'ai un Pandas Dataframe qui a des valeurs de date stockées dans 2 colonnes dans le format ci-dessous:
Column 1: 04-APR-2018 11:04:29
Column 2: 2018040415203
Comment pourrais-je convertir cela en un horodatage. Le type de données de ces deux colonnes est Objet.
Pour le premier format, vous pouvez simplement passer à_datetime, pour ce dernier, vous devez décrire explicitement le format de date ( voir le tableau des directives disponibles dans le python docs ):
In [21]: df
Out[21]:
col1 col2
0 04-APR-2018 11:04:29 2018040415203
In [22]: pd.to_datetime(df.col1)
Out[22]:
0 2018-04-04 11:04:29
Name: col1, dtype: datetime64[ns]
In [23]: pd.to_datetime(df.col2, format="%Y%m%d%H%M%S")
Out[23]:
0 2018-04-04 15:20:03
Name: col2, dtype: datetime64[ns]
Vous pouvez également les essayer. Essayez de passer infer_datatime-format = True lors de la lecture du fichier.
si la méthode ci-dessus échoue, essayez ce qui suit
df2 = pd.to_datetime(df.col1)
ou
df2 = pd.to_datetime(df['col1'])
df2
Notez que les méthodes ci-dessus convertissent uniquement le str au format datetime et les renvoient en df2. En bref, df2 n'aura que le format datetime de str sans nom de colonne. Si vous souhaitez conserver d'autres colonnes de la trame de données et souhaitez donner un en-tête à la colonne convertie, vous pouvez essayer ce qui suit
df['col1_converetd'] = pd.to_datetime(df.col1)
ou
df['col1_converetd'] = pd.to_datetime(df['col1'])
C'est confortable si vous ne voulez pas créer de trame de données ou si vous souhaitez référencer la colonne convertie à l'avenir avec d'autres attributs de la trame de données.