Tengo un Dataframe, df, con la siguiente columna:
df['ArrivalDate'] =
...
936 2012-12-31
938 2012-12-29
965 2012-12-31
966 2012-12-31
967 2012-12-31
968 2012-12-31
969 2012-12-31
970 2012-12-29
971 2012-12-31
972 2012-12-29
973 2012-12-29
...
Los elementos de la columna son pandas.tslib.Timestamp.
Solo quiero incluir el año y el mes. Pensé que habría una manera simple de hacerlo, pero no puedo entenderlo.
Esto es lo que he intentado:
df['ArrivalDate'].resample('M', how = 'mean')
Tuve el siguiente error:
Only valid with DatetimeIndex or PeriodIndex
Entonces intenté:
df['ArrivalDate'].apply(lambda(x):x[:-2])
Tuve el siguiente error:
'Timestamp' object has no attribute '__getitem__'
¿Alguna sugerencia?
Editar: lo descubrí.
df.index = df['ArrivalDate']
Entonces, puedo volver a muestrear otra columna usando el índice.
Pero todavía me gustaría un método para reconfigurar toda la columna. ¿Algunas ideas?
to_period
: df.date_column.dt.month
(o .year
, o .day
) funciona
.dt.month
aunque pierde el año. Y .dt.to_period('M')
cambia el tipo de datos a algo que ya no es datetime64. Terminé usando la respuesta de Juan sugiriendo .astype('datetime64[M]')
truncar los valores.