Mam Dataframe, df, z następującą kolumną:
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
...
Elementy kolumny to pandas.tslib.Timestamp.
Chcę tylko podać rok i miesiąc. Myślałem, że będzie prosty sposób, ale nie mogę tego rozgryźć.
Oto, co próbowałem:
df['ArrivalDate'].resample('M', how = 'mean')
Wystąpił następujący błąd:
Only valid with DatetimeIndex or PeriodIndex
Potem spróbowałem:
df['ArrivalDate'].apply(lambda(x):x[:-2])
Wystąpił następujący błąd:
'Timestamp' object has no attribute '__getitem__'
Jakieś sugestie?
Edycja: W pewnym sensie to rozgryzłem.
df.index = df['ArrivalDate']
Następnie mogę ponownie próbkować kolejną kolumnę za pomocą indeksu.
Ale nadal chciałbym metodę rekonfiguracji całej kolumny. Jakieś pomysły?
to_period
: df.date_column.dt.month
( .year
lub .day
) prac
.dt.month
traci jednak rok. I .dt.to_period('M')
zmienia typ danych na coś, co nie jest już datetime64. Skończyło się na tym, że Juan użył odpowiedzi sugerującej .astype('datetime64[M]')
skrócenie wartości.