วิธีแก้ไข: หากใช้ค่าสเกลาร์ทั้งหมด คุณจะต้องผ่านดัชนี


ข้อผิดพลาดที่คุณอาจพบเมื่อใช้นุ่นคือ:

 ValueError: If using all scalar values, you must pass an index

ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณพยายามสร้าง DataFrame แพนด้าโดยส่งค่าสเกลาร์ทั้งหมด แต่ยังไม่สามารถส่งดัชนีได้

ตัวอย่างต่อไปนี้แสดงวิธีการแก้ไขข้อผิดพลาดนี้ในทางปฏิบัติ

วิธีการทำซ้ำข้อผิดพลาด

สมมติว่าเรากำลังพยายามสร้าง DataFrame แพนด้าจากค่าสเกลาร์หลายค่า:

 import pandas as pd

#define scalar values
a = 1
b = 2
c = 3
d = 4

#attempt to create DataFrame from scalar values
df = pd. DataFrame ({' A ':a,' B ':b,' C ':c,' D ':d})

ValueError: If using all scalar values, you must pass an index

เราได้รับข้อผิดพลาดเนื่องจากเราส่งเฉพาะค่าสเกลาร์ไปยัง DataFrame แต่เราไม่สามารถส่งดัชนีได้

วิธีการแก้ไขข้อผิดพลาด

ต่อไปนี้เป็นสามวิธีที่คุณสามารถใช้แก้ไขข้อผิดพลาดนี้:

วิธีที่ 1: แปลงค่าสเกลาร์ให้เป็นรายการ

 import pandas as pd

#define scalar values
a = 1
b = 2
c = 3
d = 4

#create DataFrame by transforming scalar values to list
df = pd. DataFrame ({' A ':[a], ' B ':[b], ' C ':[c], ' D ':[d]})

#view DataFrame
df
        A B C D
0 1 2 3 4

วิธีที่ 2: ส่งผ่านค่าสเกลาร์และดัชนีความสำเร็จ

 import pandas as pd

#define scalar values
a = 1
b = 2
c = 3
d = 4

#create DataFrame by passing scalar values and passing index
df = pd. DataFrame ({' A ': a, ' B ': b, ' C ': c, ' D ': d}, index=[ 0 ])

#view DataFrame
df
        A B C D
0 1 2 3 4

วิธีที่ 3: ใส่ค่าสเกลาร์ลงในพจนานุกรม

 import pandas as pd

#define scalar values
a = 1
b = 2
c = 3
d = 4

#define dictionary of scalar values
my_dict = {' A ':1, ' B ':2, ' C ':3, ' D ':4}

#create DataFrame by passing dictionary wrapped in a list
df = pd. DataFrame ([my_dict])

#view DataFrame
df
        A B C D
0 1 2 3 4

โปรดทราบว่าแต่ละวิธีจะสร้าง DataFrame เดียวกัน

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีแก้ไขข้อผิดพลาดทั่วไปอื่นๆ ใน Python:

วิธีแก้ไข: ไม่มีโมดูลชื่อแพนด้า
วิธีแก้ไข: ไม่มีโมดูลชื่อ numpy
วิธีแก้ไข: คอลัมน์ซ้อนทับกันแต่ไม่ได้ระบุส่วนต่อท้าย
วิธีแก้ไข: การตั้งค่า WithCopyWarning ใน Pandas

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

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