Tôi có một Dataframe, df, với cột sau:
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
...
Các yếu tố của cột là pandas.tslib.Timestamp.
Tôi muốn chỉ bao gồm năm và tháng. Tôi nghĩ rằng sẽ có cách đơn giản để làm điều đó, nhưng tôi không thể tìm ra nó.
Đây là những gì tôi đã thử:
df['ArrivalDate'].resample('M', how = 'mean')
Tôi đã nhận được lỗi sau:
Only valid with DatetimeIndex or PeriodIndex
Sau đó tôi đã thử:
df['ArrivalDate'].apply(lambda(x):x[:-2])
Tôi đã nhận được lỗi sau:
'Timestamp' object has no attribute '__getitem__'
Bất kỳ đề xuất?
Chỉnh sửa: Tôi sắp xếp nó ra.
df.index = df['ArrivalDate']
Sau đó, tôi có thể lấy mẫu lại một cột khác bằng cách sử dụng chỉ mục.
Nhưng tôi vẫn muốn một phương pháp để cấu hình lại toàn bộ cột. Có ý kiến gì không?
to_period
: df.date_column.dt.month
(hoặc .year
, hoặc .day
) hoạt động
.dt.month
mặc dù mất năm. Và .dt.to_period('M')
thay đổi kiểu dữ liệu thành một thứ không còn là datetime64 nữa. Tôi đã kết thúc bằng cách sử dụng câu trả lời của Juan đề nghị .astype('datetime64[M]')
cắt bớt các giá trị.