parse datetimeindex dates convert python datetime pandas dataframe

python - datetimeindex - Tiempo de caída desde datetime<[M8] en Pandas



pandas timestamp string to datetime (2)

La forma más rápida es usar la normalización de DatetimeIndex (primero debe hacer que la columna sea un Indice de Datetime):

In [11]: df = pd.DataFrame({"t": pd.date_range(''2014-01-01'', periods=5, freq=''H'')}) In [12]: df Out[12]: t 0 2014-01-01 00:00:00 1 2014-01-01 01:00:00 2 2014-01-01 02:00:00 3 2014-01-01 03:00:00 4 2014-01-01 04:00:00 In [13]: pd.DatetimeIndex(df.t).normalize() Out[13]: <class ''pandas.tseries.index.DatetimeIndex''> [2014-01-01, ..., 2014-01-01] Length: 5, Freq: None, Timezone: None In [14]: df[''date''] = pd.DatetimeIndex(df.t).normalize() In [15]: df Out[15]: t date 0 2014-01-01 00:00:00 2014-01-01 1 2014-01-01 01:00:00 2014-01-01 2 2014-01-01 02:00:00 2014-01-01 3 2014-01-01 03:00:00 2014-01-01 4 2014-01-01 04:00:00 2014-01-01

DatetimeIndex también tiene algunos otros atributos útiles, por ejemplo, .year, .month, .day.

A partir de la versión 0.15 serán un atributo dt, por lo que puede acceder a este (y otros métodos) con:

df.t.dt.normalize() # equivalent to pd.DatetimeIndex(df.t).normalize()

Así que tengo una columna ''Fecha'' en mi marco de datos donde las fechas tienen un formato como este

0 1998-08-26 04:00:00

Si solo quiero el mes y el año del año, ¿cómo puedo abandonar la hora trivial?


Otra posibilidad es usar str.split

df[''Date''] = df[''Date''].str.split('' '',expand=True)[0]

Esto debería dividir la columna ''Fecha'' en dos columnas marcadas con 0 y 1. Usando el espacio en blanco entre la fecha y la hora como indicador de división.

La columna 0 del marco de datos devuelto incluye la fecha y la columna 1 incluye la hora. Luego establece la columna ''Fecha'' de su marco de datos original en la columna [0], que debería ser solo la fecha.