วิธีเปลี่ยนประเภทคอลัมน์ใน 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

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *