Python常見錯誤:ValueError: If using all scalar values, you must pass an index(四種解決方案)


經常遇到問題 ValueError: If using all scalar values, you must pass an index,因為pandas 的dataframe需要一個可迭代的對象
換成列表 或者加個index就可以解決這個問題
 
作者:KavinDotG
鏈接:https://www.jianshu.com/p/c5165cf900c4
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

 

1、錯誤發生場景:

import pandas as pd
dict = {'a':1,'b':2,'c':3}
data = pd.DataFrame(dict)
1
2
3
2、錯誤原因:

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

3、解決方案:

通過字典來創建DataFrame對象是很常見的需求,但是針對不同的對象形式,可能會有不同的寫法。看代碼,以下這四種方法都是可以修正這個錯誤,而且產生相同的正確結果,具體使用哪種方法根據自己的需求來選擇就好。

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)
————————————————
版權聲明:本文為CSDN博主「小白白白又白cdllp」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_39750084/article/details/81429037


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM