web-dev-qa-db-fra.com

Convertir la colonne en horodatage - Pandas Dataframe

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.

10
Taukheer

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]
14
Andy Hayden

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.

0
Natty