Saya memiliki Dataframe, df, dengan kolom berikut:
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
...
Elemen-elemen kolom adalah pandas.tslib.Timestamp.
Saya hanya ingin memasukkan tahun dan bulan. Saya pikir akan ada cara sederhana untuk melakukannya, tetapi saya tidak bisa mengetahuinya.
Inilah yang saya coba:
df['ArrivalDate'].resample('M', how = 'mean')
Saya mendapat kesalahan berikut:
Only valid with DatetimeIndex or PeriodIndex
Kemudian saya mencoba:
df['ArrivalDate'].apply(lambda(x):x[:-2])
Saya mendapat kesalahan berikut:
'Timestamp' object has no attribute '__getitem__'
Ada saran?
Sunting: Saya menemukan jawabannya.
df.index = df['ArrivalDate']
Lalu, saya bisa melakukan sampel ulang kolom lain menggunakan indeks.
Tapi saya masih ingin metode untuk mengkonfigurasi ulang seluruh kolom. Ada ide?
to_period
: df.date_column.dt.month
(atau .year
, atau .day
) bekerja
.dt.month
kalah tahun ini. Dan .dt.to_period('M')
mengubah tipe data menjadi sesuatu yang bukan datetime64 lagi. Saya akhirnya menggunakan jawaban Juan menyarankan .astype('datetime64[M]')
untuk memotong nilai-nilai.