Eu tenho um Dataframe, df, com a seguinte coluna:
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
...
Os elementos da coluna são pandas.tslib.Timestamp.
Quero incluir apenas o ano e o mês. Eu pensei que haveria uma maneira simples de fazer isso, mas não consigo descobrir.
Aqui está o que eu tentei:
df['ArrivalDate'].resample('M', how = 'mean')
Eu recebi o seguinte erro:
Only valid with DatetimeIndex or PeriodIndex
Então eu tentei:
df['ArrivalDate'].apply(lambda(x):x[:-2])
Eu recebi o seguinte erro:
'Timestamp' object has no attribute '__getitem__'
Alguma sugestão?
Edit: Eu meio que descobri isso.
df.index = df['ArrivalDate']
Em seguida, posso reamostrar outra coluna usando o índice.
Mas eu ainda gostaria de um método para reconfigurar a coluna inteira. Alguma ideia?
to_period
: df.date_column.dt.month
(ou .year
, ou .day
) funciona
.dt.month
perde o ano embora. E .dt.to_period('M')
altera o tipo de dados para algo que não é mais um datetime64. Acabei usando a resposta de Juan sugerindo .astype('datetime64[M]')
truncar os valores.