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