У меня есть Dataframe, df, со следующим столбцом:
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
...
Элементами столбца являются pandas.tslib.Timestamp.
Я хочу просто указать год и месяц. Я думал, что будет простой способ сделать это, но я не могу понять это.
Вот что я попробовал:
df['ArrivalDate'].resample('M', how = 'mean')
Я получил следующую ошибку:
Only valid with DatetimeIndex or PeriodIndex
Тогда я попробовал:
df['ArrivalDate'].apply(lambda(x):x[:-2])
Я получил следующую ошибку:
'Timestamp' object has no attribute '__getitem__'
Какие-либо предложения?
Редактировать: я вроде понял это.
df.index = df['ArrivalDate']
Затем я могу пересчитать другой столбец, используя индекс.
Но я все еще хотел бы метод для перенастройки всего столбца. Любые идеи?
to_period
: df.date_column.dt.month
(или .year
, или .day
) работает
.dt.month
теряет год, хотя. И .dt.to_period('M')
изменяет тип данных на что-то, что больше не является datetime64. В итоге я воспользовался ответом Хуана, предложив .astype('datetime64[M]')
усечь значения.