วิธีแก้ไขใน pandas: typeerror: ไม่มีข้อมูลตัวเลขให้ลงจุด
ข้อผิดพลาดที่คุณอาจพบเมื่อใช้นุ่นคือ:
TypeError : no numeric data to plot
ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามพล็อตค่าจาก Pandas DataFrame แต่ไม่มีค่าตัวเลขให้ลงจุด
ข้อผิดพลาดนี้มักเกิดขึ้นเมื่อคุณคิดว่าคอลัมน์บางคอลัมน์ใน DataFrame เป็นตัวเลข แต่กลับกลายเป็นประเภทข้อมูลอื่น
ตัวอย่างต่อไปนี้แสดงวิธีการแก้ไขข้อผิดพลาดนี้ในทางปฏิบัติ
วิธีการทำซ้ำข้อผิดพลาด
สมมติว่าเรามี DataFrame แพนด้าดังต่อไปนี้:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B'], ' points ': ['5', '7', '7', '9', '12'], ' rebounds ': ['11', '8', '10', '6', '6'], ' blocks ': ['4', '7', '7', '6', '5']}) #view DataFrame df team points rebound blocks 0 A 5 11 4 1 To 7 8 7 2 B 7 10 7 3 B 9 6 6 4 B 12 6 5
ตอนนี้ สมมติว่าเราพยายามสร้างพล็อตเชิงเส้นสำหรับตัวแปรสามตัวที่เราคิดว่าเป็นตัวเลข: จุด การตีกลับ และบล็อก:
#attempt to create line plot for points, rebounds, and blocks
df[[' points ', ' rebounds ', ' blocks ']]. plot ()
ValueError : no numeric data to plot
เราได้รับข้อผิดพลาดเนื่องจากไม่มีคอลัมน์ใดที่เป็นตัวเลขจริงๆ
วิธีการแก้ไขข้อผิดพลาด
เราสามารถใช้ฟังก์ชัน dtypes เพื่อดูว่าแต่ละคอลัมน์ใน DataFrame เป็นของประเภทข้อมูลใด:
#display data type of each column in DataFrame
df. dtypes
team object
points object
rebound object
blocks object
dtype:object
เราจะเห็นได้ว่าไม่มีคอลัมน์ใดใน DataFrame ที่เป็นตัวเลข
เราสามารถใช้ฟังก์ชัน .astype() เพื่อแปลงคอลัมน์ที่ระบุให้เป็นค่าตัวเลขได้:
#convert points, rebounds, and blocks columns to numeric
df[' points ']=df[' points ']. astype (float)
df[' rebounds ']=df[' rebounds ']. astype (float)
df[' blocks ']=df[' blocks ']. astype (float)
จากนั้นเราสามารถนำฟังก์ชัน plot() กลับมาใช้ใหม่ได้:
#create line plot for points, rebounds, and blocks
df[[' points ', ' rebounds ', ' blocks ']]. plot ()

เราสามารถสร้างพล็อตเชิงเส้นสำหรับจุด การตีกลับ และบล็อกได้สำเร็จ เนื่องจากตอนนี้ตัวแปรแต่ละตัวเป็นตัวเลขแล้ว
เราสามารถตรวจสอบสิ่งนี้ได้โดยใช้ฟังก์ชัน dtypes อีกครั้ง:
#display data type of each column in DataFrame
df. dtypes
team object
float64 points
rebounds float64
blocks float64
dtype:object
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่นๆ ใน Python:
วิธีแก้ไข KeyError ใน Pandas
วิธีแก้ไข: ValueError: ไม่สามารถแปลง float NaN เป็น int
วิธีแก้ไข: ValueError: ตัวถูกดำเนินการไม่สามารถออกอากาศด้วยรูปร่างได้