【Python報錯】ValueError: If using all scalar values, you must pass an index
- 2021 年 6 月 22 日
- 筆記
- python運行報錯記錄
問題:
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)