หลายครั้งที่เราอาจจำเป็นต้องแปลงประเภทข้อมูลของคอลัมน์ตั้งแต่หนึ่งคอลัมน์ขึ้นไปใน data frame ของ pandas เพื่อรองรับความต้องการในการคำนวณบางอย่าง มีฟังก์ชันหรือวิธีการที่สร้างขึ้นในแพนด้าซึ่งสามารถทำได้
การใช้ astype()
astype() วิธีการที่เรากำหนดชนิดข้อมูลใหม่ให้กับคอลัมน์ที่มีอยู่หรือทุกคอลัมน์ของกรอบข้อมูลแพนด้า ในตัวอย่างด้านล่าง เราจะแปลงคอลัมน์ที่มีอยู่ทั้งหมดเป็นประเภทข้อมูลสตริง
ตัวอย่าง
import pandas as pd #Sample dataframe df = pd.DataFrame({ 'DayNo': [1, 2, 3, 4, 5,6,7], 'Name': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu','Fri','Sat'], 'Qty': [2.6, 5, 11.8, 2, 5.6,0,0.25]}) # Exisitng Data types print(df.dtypes) #Convert to string data type df_str = df.astype(str) # Verify the conversion print("***After Conversion***") print(df_str.dtypes)
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
DayNo int64 Name object Qty float64 dtype: object ***After Conversion*** DayNo object Name object Qty object dtype: object
การใช้ to_numeric()
เราสามารถแปลงตัวเลขที่ปัจจุบันทำเครื่องหมายเป็นสตริงใน data frame เป็นตัวเลขโดยใช้ to_numeric()
ตัวอย่าง
import pandas as pd # Example dataframe df = pd.DataFrame({ 'DayNo': [1, 2, 3, 4, 5,6,7], 'Name': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu','Fri','Sat'], 'Qty': [2.6, 5, 11.8, 2, 5.6,0,0.25]}) df_str = df.astype(str) print(df_str.dtypes) #Applying conversion print("After Conversion:") df_num = pd.to_numeric(df_str.DayNo) print('DayNo:',df_num.dtypes)
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
ผลลัพธ์
DayNo object Name object Qty object dtype: object After Conversion: DayNo: int64
การใช้ infer_objects()
เป็นวิธีการแปลงแบบซอฟต์ที่เราแปลงคอลัมน์ของ DataFrame ที่มีประเภทข้อมูลอ็อบเจ็กต์เป็นประเภทที่เฉพาะเจาะจงมากขึ้น
ตัวอย่าง
import pandas as pd # Example dataframe df = pd.DataFrame({ 'DayNo': [1, 2, 3, 4, 5,6,7], # 'Name': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu','Fri','Sat'], 'Qty': ['2.6', '5', '11.8', '2', '5.6','0','0.25']}, dtype='object') print(df.dtypes) #Applying conversion print("After Conversion:") df_new = df.infer_objects() print(df_new.dtypes)
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
ผลลัพธ์
DayNo object Qty object dtype: object After Conversion: DayNo int64 Qty object dtype: object