日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

已解决pandas创建DataFrame对象失败

發(fā)布時間:2024/3/13 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 已解决pandas创建DataFrame对象失败 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

已解決(pandas創(chuàng)建DataFrame對象失敗)ValueError: Shape of passed values is (1509, 1), indices imply (1509, 2)





文章目錄

  • 報錯代碼
  • 報錯翻譯
  • 報錯原因
  • 解決方法
  • 創(chuàng)建DataFrame對象的四種方法
    • 1. list列表構建DataFrame
    • 2. dict字典構建DataFrame
    • 3. ndarray創(chuàng)建DataFrame
    • 4. Series創(chuàng)建DataFrame
  • 千人全棧VIP答疑群聯(lián)系博主幫忙解決報錯





報錯代碼



粉絲群一個小伙伴想pandas創(chuàng)建DataFrame對象,但是發(fā)生了報錯(當時他心里瞬間涼了一大截,跑來找我求助,然后順利幫助他解決了,順便記錄一下希望可以幫助到更多遇到這個bug不會解決的小伙伴),報錯代碼如下:

import pandas as pddata = {'name': ['a', 'b'],'Height': [140, 150, 160, 170],'Weight': [40, 50, 60, 70]} df = pd.DataFrame(data, index=list('abcd')) print(df)

報錯信息截圖如下所示




報錯翻譯



報錯信息翻譯如下

值錯誤:傳遞值的形狀為(2,3),索引表示(4,3)





報錯原因



報錯原因

傳遞創(chuàng)建DataFrame的值和索引對不上,小伙伴們按下面正確的方法創(chuàng)建即可!!!



解決方法



每一個列表的長度都要相同:

import pandas as pddata = {'name': ['a', 'b','c','d'],'Height': [155, 160, 175, 180],'Weight': [50, 48, 52, 65]} df = pd.DataFrame(data, index=list('abcd')) print(df)

運行結果:



創(chuàng)建DataFrame對象的四種方法

DataFrame 構造方法如下:

pandas.DataFrame( data, index, columns, dtype, copy)

參數說明:

  • data:一組數據(ndarray、series, map, lists, dict 等類型)。

  • index:索引值,或者可以稱為行標簽。

  • columns:列標簽,默認為 RangeIndex (0, 1, 2, …, n) 。

  • dtype:數據類型。

  • copy:拷貝數據,默認為 False。

1. list列表構建DataFrame

1)通過單列表創(chuàng)建

>>> import pandas as pd >>> >>> data = [0, 1, 2, 3, 4, 5] >>> df = pd.DataFrame(data) >>> print(df)0 0 0 1 1 2 2 3 3 4 4 5 5 >>> print(type(df)) <class 'pandas.core.frame.DataFrame'>

2)通過嵌套列表創(chuàng)建

>>> import pandas as pd >>> >>> data = [['小明', 20], ['小紅', 10]] >>> df = pd.DataFrame(data, columns=['name', 'age'], dtype=float) sys:1: FutureWarning: Could not cast to float64, falling back to object. This behavior is deprecated. In a future version, when a dtype is passed to 'DataFrame', either all columns will be cast to that dtype, or a TypeError will be raised >>> print(df)name age 0 小明 20.0 1 小紅 10.0 >>> print(type(df)) <class 'pandas.core.frame.DataFrame'>

3)列表中嵌套字典(字典的鍵被用作列名,缺失則賦值為NaN):

>>> import pandas as pd >>> >>> data = [{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}] >>> df = pd.DataFrame(data) >>> print(df)A B C 0 1 2 NaN 1 3 4 5.0 >>> print(type(df)) <class 'pandas.core.frame.DataFrame'>

2. dict字典構建DataFrame

使用 dict 創(chuàng)建,dict中列表的長度必須相同, 如果傳遞了index,則索引的長度應等于數組的長度。如果沒有傳遞索引,則默認情況下,索引將是range(n),其中n是數組長度。

1)普通創(chuàng)建:

>>> import pandas as pd >>> >>> data = {'name': ['小紅', '小明', '小白'], 'age': [10, 20, 30]} >>> df = pd.DataFrame(data) >>> print(df)name age 0 小紅 10 1 小明 20 2 小白 30 >>> print(type(df)) <class 'pandas.core.frame.DataFrame'>

2)設置index創(chuàng)建:

>>> import pandas as pd >>> >>> data = {'name': ['小紅', '小明', '小白'], 'age': [10, 20, 30]} >>> df = pd.DataFrame(data, index=['老三', '老二', '老大']) >>> print(df)name age 老三 小紅 10 老二 小明 20 老大 小白 30 >>> print(type(df)) <class 'pandas.core.frame.DataFrame'>

3. ndarray創(chuàng)建DataFrame

1)普通方式創(chuàng)建:

>>> import pandas as pd >>> import numpy as np >>> >>> data = np.random.randn(3, 3) >>> print(data) [[-1.9332579 0.70876382 -0.44291914][-0.26228642 -1.05200338 0.57390067][-0.49433001 0.70472595 -0.50749279]] >>> print(type(data)) <class 'numpy.ndarray'> >>> df = pd.DataFrame(data) >>> print(df)0 1 2 0 -1.933258 0.708764 -0.442919 1 -0.262286 -1.052003 0.573901 2 -0.494330 0.704726 -0.507493 >>> print(type(df)) <class 'pandas.core.frame.DataFrame'>

2)設置列名創(chuàng)建:

>>> import pandas as pd >>> import numpy as np >>> >>> data = np.random.randn(3, 3) >>> print(data) [[-0.22028147 0.62374794 -0.66210282][-0.71785439 -1.21004547 1.15663811][ 1.47843923 0.4385811 0.31931312]] >>> print(type(data)) <class 'numpy.ndarray'> >>> df = pd.DataFrame(data, columns=list("ABC")) >>> print(df)A B C 0 -0.220281 0.623748 -0.662103 1 -0.717854 -1.210045 1.156638 2 1.478439 0.438581 0.319313 >>> print(type(df)) <class 'pandas.core.frame.DataFrame'>

4. Series創(chuàng)建DataFrame

>>> import pandas as pd >>> >>> data = {'A': pd.Series(1, index=list(range(4)), dtype='float32'), ... 'B': pd.Series(2, index=list(range(4)), dtype='float32'), ... 'C': pd.Series(3, index=list(range(4)), dtype='float32') ... } >>> df = pd.DataFrame(data) >>> print(df)A B C 0 1.0 2.0 3.0 1 1.0 2.0 3.0 2 1.0 2.0 3.0 3 1.0 2.0 3.0 >>> print(type(df)) <class 'pandas.core.frame.DataFrame'>

以上是此問題報錯原因的解決方法,歡迎評論區(qū)留言討論是否能解決,如果有用歡迎點贊收藏文章謝謝支持,博主才有動力持續(xù)記錄遇到的問題!!!

千人全棧VIP答疑群聯(lián)系博主幫忙解決報錯

由于博主時間精力有限,每天私信人數太多,沒辦法每個粉絲都及時回復,所以優(yōu)先回復VIP粉絲,可以通過訂閱限時9.9付費專欄《100天精通Python從入門到就業(yè)》進入千人全棧VIP答疑群,獲得優(yōu)先解答機會(代碼指導、遠程服務),白嫖80G學習資料大禮包,專欄訂閱地址:https://blog.csdn.net/yuan2019035055/category_11466020.html

  • 優(yōu)點:作者優(yōu)先解答機會(代碼指導、遠程服務),群里大佬眾多可以抱團取暖(大廠內推機會),此專欄文章是專門針對零基礎和需要進階提升的同學所準備的一套完整教學,從0到100的不斷進階深入,后續(xù)還有實戰(zhàn)項目,輕松應對面試!

  • 專欄福利:簡歷指導、招聘內推、每周送實體書、80G全棧學習視頻、300本IT電子書:Python、Java、前端、大數據、數據庫、算法、爬蟲、數據分析、機器學習、面試題庫等等

  • 注意:如果希望得到及時回復,訂閱專欄后私信博主進千人VIP答疑群

免費資料獲取,更多粉絲福利,關注下方公眾號獲取

總結

以上是生活随笔為你收集整理的已解决pandas创建DataFrame对象失败的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。