dtype convert python datetime pandas dataframe

python - convert - pandas timestamp to datetime



Convierta la serie de pandas a DateTime en un DataFrame (2)

Tengo un Panda DataFrame como abajo

ReviewID ID Type TimeReviewed 205 76032930 51936827 ReportID 2015-01-15 00:05:27.513000 232 76032930 51936854 ReportID 2015-01-15 00:06:46.703000 233 76032930 51936855 ReportID 2015-01-15 00:06:56.707000 413 76032930 51937035 ReportID 2015-01-15 00:14:24.957000 565 76032930 51937188 ReportID 2015-01-15 00:23:07.220000 >>> type(df) <class ''pandas.core.frame.DataFrame''>

TimeReviewed es un tipo de serie

>>> type(df.TimeReviewed) <class ''pandas.core.series.Series''>

Lo he intentado a continuación, pero todavía no cambia el tipo de serie

import pandas as pd review = pd.to_datetime(pd.Series(df.TimeReviewed)) >>> type(review) <class ''pandas.core.series.Series''>

¿Cómo puedo cambiar el tipo df.TimeReviewed to DateTime y sacar año, mes, día, hora, min, segundo por separado? Soy un poco nuevo en Python, gracias por tu ayuda.


Algunos guiones útiles:

hour = df[''assess_time''].dt.hour.values[0]


No se puede: DataFrame columnas de DataFrame son Series , por definición. Dicho esto, si dtype el tipo de dtype (el tipo de todos los elementos) similar a la fecha y hora, puede acceder a las cantidades que desea a través del .dt ( documentos ):

>>> df["TimeReviewed"] = pd.to_datetime(df["TimeReviewed"]) >>> df["TimeReviewed"] 205 76032930 2015-01-24 00:05:27.513000 232 76032930 2015-01-24 00:06:46.703000 233 76032930 2015-01-24 00:06:56.707000 413 76032930 2015-01-24 00:14:24.957000 565 76032930 2015-01-24 00:23:07.220000 Name: TimeReviewed, dtype: datetime64[ns] >>> df["TimeReviewed"].dt <pandas.tseries.common.DatetimeProperties object at 0xb10da60c> >>> df["TimeReviewed"].dt.year 205 76032930 2015 232 76032930 2015 233 76032930 2015 413 76032930 2015 565 76032930 2015 dtype: int64 >>> df["TimeReviewed"].dt.month 205 76032930 1 232 76032930 1 233 76032930 1 413 76032930 1 565 76032930 1 dtype: int64 >>> df["TimeReviewed"].dt.minute 205 76032930 5 232 76032930 6 233 76032930 6 413 76032930 14 565 76032930 23 dtype: int64

Si está atrapado usando una versión anterior de pandas , siempre puede acceder a los diversos elementos manualmente (nuevamente, después de convertirlo en una serie con fecha y hora). Será más lento, pero a veces eso no es un problema:

>>> df["TimeReviewed"].apply(lambda x: x.year) 205 76032930 2015 232 76032930 2015 233 76032930 2015 413 76032930 2015 565 76032930 2015 Name: TimeReviewed, dtype: int64