ในบทช่วยสอนนี้ เราจะเรียนรู้การแปลงชนิดข้อมูลของคอลัมน์หนึ่งหรือหลายคอลัมน์เป็นชนิดข้อมูลอื่น เราจะใช้เมธอด DataFrame.astype()
เราต้องส่งชนิดข้อมูลจาก Python, Pandas, หรือ Numpy เพื่อเปลี่ยนชนิดข้อมูลของสมาชิกในคอลัมน์ เราสามารถส่งดิกชันนารีของคอลัมน์ที่เลือกเพื่อเปลี่ยนชนิดข้อมูลของคอลัมน์เฉพาะได้ มาดูตัวอย่างพร้อมโค้ด
ตัวอย่าง
# นำเข้าไลบรารี pandas
import pandas as pd
# สร้าง DataFrame
data_frame = pd.DataFrame({'No': [1, 2, 3], 'Name': ['Tutorialspoint', 'Mohit', 'Sharma'], 'Age': [25, 32, 21]})
# เปลี่ยนชนิดข้อมูลทุกคอลัมน์เป็น str
data_frame = data_frame.astype(str)
# ตรวจสอบชนิดข้อมูลด้วยเมธอด dtypes
print(data_frame.dtypes)
ผลลัพธ์
ชนิดข้อมูลทุกคอลัมน์เปลี่ยนเป็น object (str) ถ้ารันโปรแกรมข้างต้น จะได้ผลลัพธ์ดังนี้:
No object Name object Age object dtype: object
ตอนนี้ลองเปลี่ยนชนิดข้อมูลคอลัมน์ Age จาก int เป็น str เราต้องสร้างดิกชันนารีระบุชื่อคอลัมน์และชนิดข้อมูลที่ต้องการ
ตัวอย่าง
# นำเข้าไลบรารี pandas
import pandas as pd
# สร้าง DataFrame
data_frame = pd.DataFrame({'No': [1, 2, 3], 'Name': ['Tutorialspoint', 'Mohit', 'Sharma'], 'Age': [25, 32, 21]})
# สร้างดิกชันนารีพร้อมชื่อคอลัมน์และชนิดข้อมูล
data_types_dict = {'Age': str}
# เปลี่ยนชนิดข้อมูลคอลัมน์ Age เป็น str โดยส่งดิกชันนารีให้ astype
data_frame = data_frame.astype(data_types_dict)
# ตรวจสอบชนิดข้อมูล
print(data_frame.dtypes)
ผลลัพธ์
จากผลลัพธ์จะเห็นว่าเฉพาะคอลัมน์ Age เปลี่ยนจาก int เป็น str ดูผลลัพธ์ด้านล่าง
No int64 Name object Age object dtype: object
สรุป
เมธอด astype() ยืดหยุ่น อนุญาตให้เปลี่ยนชนิดข้อมูลหลายคอลัมน์พร้อมกันด้วยดิกชันนารี หรือคอลัมน์เดียวด้วยชนิดข้อมูลโดยตรง