วิธีเปลี่ยนประเภทคอลัมน์ใน pandas (พร้อมตัวอย่าง)
คอลัมน์ของ Pandas DataFrame อาจมีประเภทใดประเภทหนึ่งต่อไปนี้:
- วัตถุ (สตริง)
- int64 (จำนวนเต็ม)
- float64 (ค่าตัวเลขมีทศนิยม)
- บูล (ค่าจริงหรือเท็จ)
- datetime64 (วันที่และเวลา)
วิธีที่ง่ายที่สุดในการแปลงคอลัมน์จากประเภทข้อมูลหนึ่งไปเป็นอีกประเภทหนึ่งคือการใช้ฟังก์ชัน astype()
คุณสามารถใช้วิธีการต่อไปนี้ร่วมกับฟังก์ชัน astype() เพื่อแปลงคอลัมน์จากข้อมูลประเภทหนึ่งไปเป็นอีกประเภทหนึ่งได้:
วิธีที่ 1: แปลงคอลัมน์เป็นชนิดข้อมูลอื่น
df[' col1 '] = df[' col1 ']. astype (' int64 ')
วิธีที่ 2: แปลงหลายคอลัมน์เป็นข้อมูลประเภทอื่น
df[[' col1 ', ' col2 ']] = df[[' col1 ', ' col2 ']]. astype (' int64 ')
วิธีที่ 3: แปลงคอลัมน์ทั้งหมดเป็นประเภทข้อมูลอื่น
df = df. astype (' int64 ')
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับ Pandas DataFrame ต่อไปนี้:
import pandas as pd #createDataFrame df = pd. DataFrame ({' ID ': ['1', '2', '3', '4', '5', '6'], ' tenure ': [12.443, 15.8, 16.009, 5.06, 11.075, 12.9546], ' sales ': [5, 7, 7, 9, 12, 9]}) #view DataFrame print (df) ID tenure sales 0 1 12.4430 5 1 2 15.8000 7 2 3 16.0090 7 3 4 5.0600 9 4 5 11.0750 12 5 6 12.9546 9 #view data type of each column print ( df.dtypes ) object ID tenure float64 dirty int64 dtype:object
ตัวอย่างที่ 1: แปลงคอลัมน์เป็นข้อมูลประเภทอื่น
รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน astype() เพื่อแปลงคอลัมน์ การครอบครอง จากทศนิยมเป็นจำนวนเต็ม:
#convert tenure column to int64
df[' tenure '] = df[' tenure ']. astype (' int64 ')
#view updated data type for each column
print ( df.dtypes )
object ID
tenure int64
dirty int64
dtype:object
โปรดทราบว่าคอลัมน์ การครอบครอง ถูกแปลงเป็น int64 ในขณะที่คอลัมน์อื่นๆ ทั้งหมดยังคงประเภทข้อมูลดั้งเดิมไว้
ตัวอย่างที่ 2: แปลงหลายคอลัมน์เป็นข้อมูลประเภทอื่น
รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน astype() เพื่อแปลงคอลัมน์ ID และ การดำรง ตำแหน่งเป็นจำนวนเต็ม:
#convert ID and tenure columns to int64
df[[' ID ', ' tenure ']] = df[[' ID ', ' tenure ']]. astype (' int64 ')
#view updated data type for each column
print ( df.dtypes )
ID int64
tenure int64
dirty int64
dtype:object
โปรดทราบว่าคอลัมน์ ID และคอลัมน์ การครอบครอง ถูกแปลงเป็น int64
ตัวอย่างที่ 3: แปลงคอลัมน์ทั้งหมดเป็นข้อมูลประเภทอื่น
รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน astype() เพื่อแปลงคอลัมน์ทั้งหมดใน DataFrame ให้เป็นชนิดข้อมูลจำนวนเต็ม:
#convert all columns to int64
df = df. astype (' int64 ')
#view updated data type for each column
print ( df.dtypes )
ID int64
tenure int64
dirty int64
dtype:object
โปรดทราบว่าคอลัมน์ทั้งหมดถูกแปลงเป็น int64
หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มของฟังก์ชัน pandas astype() ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการแปลงไฟล์ทั่วไปอื่นๆ ในแพนด้า:
วิธีแปลงคอลัมน์ Pandas DataFrame เป็นสตริง
วิธีแปลงการประทับเวลาเป็นวันที่/เวลาใน Pandas
วิธีแปลง DateTime เป็นวันที่ใน Pandas
วิธีแปลงสตริงให้ลอยใน Pandas