ฉันมีดาต้าเฟรมที่มีข้อมูลประเภทนี้ (มีคอลัมน์มากเกินไป):
col1 int64
col2 int64
col3 category
col4 category
col5 category
คอลัมน์มีลักษณะดังนี้:
Name: col3, dtype: category
Categories (8, object): [B, C, E, G, H, N, S, W]
ฉันต้องการแปลงค่าทั้งหมดในคอลัมน์เป็นจำนวนเต็มดังนี้:
[1, 2, 3, 4, 5, 6, 7, 8]
ฉันแก้ไขสิ่งนี้สำหรับหนึ่งคอลัมน์โดยสิ่งนี้:
dataframe['c'] = pandas.Categorical.from_array(dataframe.col3).codes
ตอนนี้ฉันมีสองคอลัมน์ในดาต้าเฟรม - เก่าcol3
และใหม่c
และจำเป็นต้องทิ้งคอลัมน์เก่า
นั่นเป็นการปฏิบัติที่ไม่ดี มันใช้งานได้ แต่ใน dataframe ของฉันมีหลายคอลัมน์และฉันไม่ต้องการทำด้วยตนเอง
pythonic นี้ทำอย่างไรและฉลาดแค่ไหน?