ฉันมี 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 อีกต่อไป ฉันลงเอยด้วยการใช้คำตอบของ Juan ที่แนะนำ.astype('datetime64[M]')
ให้ตัดทอนค่า