【Python報錯】ValueError: If using all scalar values, you must pass an index

問題:

1、ValueError: If using all scalar values, you must pass an index。意思是:如果使用所有標量值,則必須傳遞索引

2、再看錯誤發生程式碼位置

 

3、解讀:直接傳入標稱屬性為value的字典需要寫入index,也就是說,需要在創建DataFrame對象時設定index。

原因:這是因為 pandas 的 DataFrame 方法需要傳入一個可迭代的對象(列表,元組,字典等), 

解決方案:

給DataFrame 指定 index 參數可解決

其他解決方案:

import pandas as pd

#方法一:直接在創建DataFrame時設置index即可
dict = {'a':1,'b':2,'c':3}
data = pd.DataFrame(dict,index=[0])
print(data)

#方法二:通過from_dict函數將value為標稱變數的字典轉換為DataFrame對象
dict = {'a':1,'b':2,'c':3}
pd.DataFrame.from_dict(dict,orient='index').T
print(data)

#方法三:輸入字典時不要讓Value為標稱屬性,把Value轉換為list對象再傳入即可
dict = {'a':[1],'b':[2],'c':[3]}
data = pd.DataFrame(dict)
print(data)

#方法四:直接將key和value取出來,都轉換成list對象
dict = {'a':1,'b':2,'c':3}
pd.DataFrame(list(dict.items()))
print(data)