Ho un Dataframe, df, con la seguente colonna:
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
...
Gli elementi della colonna sono pandas.tslib.Timestamp.
Voglio solo includere l'anno e il mese. Ho pensato che ci sarebbe stato un modo semplice per farlo, ma non riesco a capirlo.
Ecco cosa ho provato:
df['ArrivalDate'].resample('M', how = 'mean')
Ho ricevuto il seguente errore:
Only valid with DatetimeIndex or PeriodIndex
Poi ho provato:
df['ArrivalDate'].apply(lambda(x):x[:-2])
Ho ricevuto il seguente errore:
'Timestamp' object has no attribute '__getitem__'
Eventuali suggerimenti?
Modifica: l'ho capito.
df.index = df['ArrivalDate']
Quindi, posso ricampionare un'altra colonna usando l'indice.
Ma vorrei ancora un metodo per riconfigurare l'intera colonna. Qualche idea?
to_period
: df.date_column.dt.month
(o .year
, o .day
) opere
.dt.month
perde l'anno però. E .dt.to_period('M')
cambia il tipo di dati in qualcosa che non è più un datetime64. Ho finito per usare la risposta di Juan suggerendo .astype('datetime64[M]')
di troncare i valori.