網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
報(bào)錯(cuò)代碼
粉絲群一個(gè)小伙伴想pandas創(chuàng)建DataFrame對(duì)象,但是發(fā)生了報(bào)錯(cuò)(當(dāng)時(shí)他心里瞬間涼了一大截,跑來找我求助,然后順利幫助他解決了,順便記錄一下希望可以幫助到更多遇到這個(gè)bug不會(huì)解決的小伙伴),報(bào)錯(cuò)代碼如下:
import pandas as pd
data = {'name': ['a', 'b'],
'Height': [140, 150, 160, 170],
'Weight': [40, 50, 60, 70]}
df = pd.DataFrame(data, index=list('abcd'))
print(df)
報(bào)錯(cuò)信息截圖如下所示:
報(bào)錯(cuò)翻譯
報(bào)錯(cuò)信息翻譯如下:
值錯(cuò)誤:傳遞值的形狀為(2,3),索引表示(4,3)
報(bào)錯(cuò)原因
傳遞創(chuàng)建DataFrame的值和索引對(duì)不上,小伙伴們按下面正確的方法創(chuàng)建即可?。?!
解決方法
每一個(gè)列表的長(zhǎng)度都要相同
import pandas as pd
data = {'name': ['a', 'b','c','d'],
'Height': [155, 160, 175, 180],
'Weight': [50, 48, 52, 65]}
df = pd.DataFrame(data, index=list('abcd'))
print(df)
運(yùn)行結(jié)果:
創(chuàng)建DataFrame對(duì)象的四種方法
DataFrame 構(gòu)造方法如下:
pandas.DataFrame( data, index, columns, dtype, copy)
參數(shù)說明:
- data:一組數(shù)據(jù)(ndarray、series, map, lists, dict 等類型)。
- index:索引值,或者可以稱為行標(biāo)簽。
- columns:列標(biāo)簽,默認(rèn)為 RangeIndex (0, 1, 2, …, n) 。
- dtype:數(shù)據(jù)類型。
- copy:拷貝數(shù)據(jù),默認(rèn)為 False。
1. list列表構(gòu)建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字典構(gòu)建DataFrame
使用 dict 創(chuàng)建,dict中列表的長(zhǎng)度必須相同, 如果傳遞了index,則索引的長(zhǎng)度應(yīng)等于數(shù)組的長(zhǎng)度。如果沒有傳遞索引,則默認(rèn)情況下,索引將是range(n),其中n是數(shù)組長(zhǎng)度。
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)設(shè)置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)設(shè)置列名創(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'>
幫忙解決
原文鏈接:https://blog.csdn.net/yuan2019035055/article/details/128424563
相關(guān)推薦
- 2022-05-27 使用Jedis線程池returnResource異常注意事項(xiàng)_Redis
- 2022-01-20 console基礎(chǔ)用法,輸出添加css,打印時(shí)間差,計(jì)數(shù)等
- 2022-03-22 Linux系統(tǒng)下gcc命令使用詳解_Linux
- 2022-06-19 Go語(yǔ)言列表List獲取元素的4種方式_Golang
- 2022-06-08 nacos項(xiàng)目啟動(dòng)報(bào)錯(cuò):Connection refused: no further informa
- 2022-11-14 關(guān)于C++解決內(nèi)存泄漏問題的心得
- 2022-10-17 多階段構(gòu)建優(yōu)化Go?程序Docker鏡像_Golang
- 2022-05-14 一起來學(xué)習(xí)React元素的創(chuàng)建和渲染_React
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支