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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

合并 多个dataframe_什么是Pandas的DataFrame?

發(fā)布時(shí)間:2024/7/23 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 合并 多个dataframe_什么是Pandas的DataFrame? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 什么是DataFrame

DataFrame是一個(gè)表格型的數(shù)據(jù)結(jié)構(gòu),它含有一組有序的列,每列可以是不同的值類型(數(shù)值、字符串、布爾值等)。DataFrame既有行索引也有列索引,它可以被看做由series組成的字典(共用同一個(gè)索引)

2. DateFrame特點(diǎn)

DataFrame中面向行和面向列的操作基本是平衡的。

DataFrame中的數(shù)據(jù)是以一個(gè)或多個(gè)兩維塊存放的(而不是列表、字典或別的一維數(shù)據(jù)結(jié)構(gòu))。

3. 創(chuàng)建DataFrame

最常用的一種是直接傳入一個(gè)由等長列表或NumPy數(shù)組組成的字典:

In [33]: data={'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],'year':[2000,2001,2002,2001,2002],'pop':[1.5,1.7,3.6,2.4,2.9]}

In [34]: frame=DataFrame(data)

#結(jié)果DataFrame會(huì)自動(dòng)加上索引(跟Series一樣),且全部列會(huì)被有序排列:

In [35]: frame

Out[35]:

pop state year

0 1.5 Ohio 2000

1 1.7 Ohio 2001

2 3.6 Ohio 2002

3 2.4 Nevada 2001

4 2.9 Nevada 2002

4. 指定列順序

#使用clolumns指定列順序

In [36]: DataFrame(data,columns=['year','state','pop'])

Out[36]:

year state pop

0 2000 Ohio 1.5

1 2001 Ohio 1.7

2 2002 Ohio 3.6

3 2001 Nevada 2.4

4 2002 Nevada 2.9

5. NA值

跟Series一樣,如果傳入的列在數(shù)據(jù)中找不到,就會(huì)產(chǎn)生NA值:

In [37]: DataFrame(data,columns=['year','state','pop','debt'],index=['one','two','three','four','five'])

Out[37]:

year state pop debt

one 2000 Ohio 1.5 NaN

two 2001 Ohio 1.7 NaN

three 2002 Ohio 3.6 NaN

four 2001 Nevada 2.4 NaN

five 2002 Nevada 2.9 NaN

6. 類似字典(或?qū)傩?#xff09;標(biāo)記

通過類似字典標(biāo)記的方式或?qū)傩缘姆绞?#xff0c;可以將DataFrame的列獲取為一個(gè)Series:

In [39]: frame['state'] #或frame.state

Out[39]:

0 Ohio

1 Ohio

2 Ohio

3 Nevada

4 Nevada

Name: state, dtype: object

7. 索引字段ix(行)

注意,返回的Series擁有原DataFrame相同的索引,且其name屬性也已經(jīng)被相應(yīng)地設(shè)置好了。行也可以通過位置或名稱的方式進(jìn)行獲取,比如用索引字段ix:

In [44]: frame2.ix['one']

Out[44]:

year 2000

state Ohio

pop 1.5

debt NaN

Name: one, dtype: object

8. 通過賦值修改列

列可以通過賦值的方式進(jìn)行修改。例如,可以給那個(gè)空的‘debt’列賦上一個(gè)標(biāo)量值或一組值:

In [45]: frame2['debt']=16.5 #或frame2.debt

In [46]: frame2

Out[46]:

year state pop debt

one 2000 Ohio 1.5 16.5

two 2001 Ohio 1.7 16.5

three 2002 Ohio 3.6 16.5

four 2001 Nevada 2.4 16.5

five 2002 Nevada 2.9 16.5

In [50]: frame2.debt=np.arange(5.)

In [51]: frame2

Out[51]:

year state pop debt

one 2000 Ohio 1.5 0.0

two 2001 Ohio 1.7 1.0

three 2002 Ohio 3.6 2.0

four 2001 Nevada 2.4 3.0

five 2002 Nevada 2.9 4.0

將列表或數(shù)組賦值給某個(gè)列時(shí),其長度必須跟DataFrame的長度相匹配。如果賦值的是一個(gè)Series,就會(huì)精確匹配DataFrame的索引,所有的空位都將被填上缺失值:

In [52]: val=Series([-1.2,-1.5,-1.7],index=['two','four','five'])

In [53]: frame2['debt']=val

In [54]: frame2

Out[54]:

year state pop debt

one 2000 Ohio 1.5 NaN

two 2001 Ohio 1.7 -1.2

three 2002 Ohio 3.6 NaN

four 2001 Nevada 2.4 -1.5

five 2002 Nevada 2.9 -1.7

9. 關(guān)鍵字del刪除列

為不存在的列賦值會(huì)創(chuàng)建出一個(gè)新列。關(guān)鍵字del用于刪除列:

In [55]: frame2['eastern']=frame2.state=='Ohio'

In [56]: frame2

Out[56]:

year state pop debt eastern

one 2000 Ohio 1.5 NaN True

two 2001 Ohio 1.7 -1.2 True

three 2002 Ohio 3.6 NaN True

four 2001 Nevada 2.4 -1.5 False

five 2002 Nevada 2.9 -1.7 False

In [57]: del frame2['eastern']

In [58]: frame2.columns

Out[58]: Index(['year', 'state', 'pop', 'debt'], dtype='object')

警告:通過索引方式返回的列只是相應(yīng)數(shù)據(jù)的視圖而已,并不是副本。因此,對(duì)返回的Series所做的任何就地修改全都會(huì)反映到源DataFrame上。通過Series的copy方法即可顯示地賦值列。

10. 嵌套字典

嵌套字典(也就是字典的字典):

In [62]: pop={'Nevada':{2001:2.4,2002:2.9},'Ohio':{2000:1.5,2001:17,2002:3.6}}

#如果將它傳給DataFrame,它就會(huì)被解釋為:外層字典的鍵作為列,內(nèi)層鍵則作為行索引:

In [63]: frame3=DataFrame(pop)

In [64]: frame3

Out[64]:

Nevada Ohio

2000 NaN 1.5

2001 2.4 17.0

2002 2.9 3.6

內(nèi)層字典的鍵會(huì)被合并、排序以形成最終的索引。如果顯式指定了索引,則不會(huì)這樣:

In [66]: DataFrame(pop,index=[2001,2002,2003])

Out[66]:

Nevada Ohio

2001 2.4 17.0

2002 2.9 3.6

2003 NaN NaN

由Series組成的字典差不多也是一樣的用法:

In [68]: pdata={'Ohio':frame3['Ohio'][:-1],'Nevada':frame3['Nevada'][:2]}

In [69]: DataFrame(pdata)

Out[69]:

Nevada Ohio

2000 NaN 1.5

2001 2.4 17.0

11. 轉(zhuǎn)置

In [65]: frame3.T

Out[65]:

2000 2001 2002

Nevada NaN 2.4 2.9

Ohio 1.5 17.0 3.6

12.索引對(duì)象

Pandas的索引對(duì)象負(fù)責(zé)管理軸標(biāo)簽和其他元數(shù)據(jù)(比如軸名稱等)。

Index對(duì)象是不可修改的(immutable),因此用戶不能對(duì)其進(jìn)行修改。

不可修改性非常重要,因?yàn)檫@樣才能使Index對(duì)象在多個(gè)數(shù)據(jù)結(jié)構(gòu)之間安全共享。

注意:雖然大部分用戶都不需要知道太多關(guān)于Index對(duì)象的細(xì)節(jié),但它們確實(shí)是pandas數(shù)據(jù)模型的重要組成部分。

「親,如果筆記對(duì)您有幫助,收藏的同時(shí),記得給點(diǎn)個(gè)贊、加個(gè)關(guān)注哦!感謝!」

「文中代碼均親測(cè)過,若有錯(cuò)誤之處,歡迎批評(píng)指正,一起學(xué)習(xí),一起成長!」

總結(jié)

以上是生活随笔為你收集整理的合并 多个dataframe_什么是Pandas的DataFrame?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。