小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python數(shù)據(jù)分析之pandas基本數(shù)據(jù)結(jié)構(gòu)

 ml_Py 2021-12-08

重磅干貨,第一時(shí)間送達(dá)

Python數(shù)據(jù)分析之numpy數(shù)組全解析

Python數(shù)據(jù)分析之Pandas讀寫外部數(shù)據(jù)文件

目錄

1引言

2 Series數(shù)組

2.1 Series數(shù)組構(gòu)成

2.2 創(chuàng)建Series數(shù)組

2.3 Series數(shù)組常用屬性

3 DataFrame數(shù)組

3.1 DataFrame數(shù)組構(gòu)成

3.2 創(chuàng)建DataFrame數(shù)組

3.3 DataFrame數(shù)組的常用屬性

4 總結(jié)

1引言

本文總結(jié)Pandas中兩種常用的數(shù)據(jù)類型:

(1)Series是一種一維的帶標(biāo)簽數(shù)組對(duì)象。

(2)DataFrame,二維,Series容器

2 Series數(shù)組

2.1 Series數(shù)組構(gòu)成

Series數(shù)組對(duì)象由兩部分構(gòu)成:

值(value):一維數(shù)組的各元素值,是一個(gè)ndarray類型數(shù)據(jù)。索引(index):與一維數(shù)組值一一對(duì)應(yīng)的標(biāo)簽。利用索引,我們可非常方便得在Series數(shù)組中進(jìn)行取值。如下所示,我們通過字典創(chuàng)建了一個(gè)Series數(shù)組,輸出結(jié)果的第一列就是索引,第二列就是數(shù)組的具體值。

>>> import pandas as pd>>> a =pd.Series([102, 212, 332, 434])>>> a0 1021 2122 3323 434dtype: int64

也可以在創(chuàng)建時(shí)手動(dòng)指定索引:

>>> a = pd.Series([102, 212, 332, 434], index=['第一列', '第二列', '第三列', '第四列'])>>> a第一列 102第二列 212第三列 332第四列 434dtype: int64

利用索引,我們可以更加方便得在數(shù)組中進(jìn)行取值:

>>> a['第一列']102>>> a[['第一列', '第二列']]第一列 102第二列 212dtype: int64

當(dāng)然,你也可以使用以往的數(shù)字下標(biāo)從數(shù)組中取值:

>>> a[0]102>>> a[[0,1]]第一列 102第二列 212dtype: int64

2.2 創(chuàng)建Series數(shù)組

(1)通過list、tuple創(chuàng)建

>>> pd.Series([123, 321, 345,543]) # 傳入一個(gè)list0 1231 3212 3453 543dtype: int64>>> pd.Series((123, 321, 345,543)) # 傳入一個(gè)元組0 1231 3212 3453 543dtype: int64

(2)通過傳入一維numpy數(shù)組對(duì)象創(chuàng)建

>>> import numpy as np>>> n = np.arange(3) # 創(chuàng)建一個(gè)一維的numpy數(shù)組>>> pd.Series(n)0 01 12 2dtype: int32

注意:傳入的numpy必須是一維的數(shù)組,否則會(huì)報(bào)錯(cuò)。

>>> n = np.arange(6).reshape((2,3))>>> pd.Series(n)Traceback (most recent call last):File "<stdin>", line 1, in <module>……packages\pandas\core\internals\construction.py", line 729, in sanitize_arrayraise Exception("Data must be 1-dimensional")Exception: Data must be 1-dimensional

(3)通過傳入字典創(chuàng)建

通過字典創(chuàng)建Series數(shù)組時(shí),字典的key會(huì)自動(dòng)被設(shè)置成Series數(shù)組的索引:

>>> pd.Series({'name':'張三', 'age':40, 'weight':140})name 張三age 40weight 140dtype: object

(4)通過傳入一個(gè)標(biāo)量值創(chuàng)建

當(dāng)傳入一個(gè)標(biāo)量值時(shí),必須傳入index索引,Series會(huì)根據(jù)傳入的index參數(shù)來確定數(shù)組對(duì)象的長(zhǎng)度:

>>> a = pd.Series(10, index=['a', 'b', 'c', 'd'])>>> aa 10b 10c 10d 10dtype: int64

2.3 Series數(shù)組常用屬性

Series數(shù)組的屬性與numpy數(shù)組屬性很是類似,如下表所示:

3 DataFrame數(shù)組

3.1 DataFrame數(shù)組構(gòu)成

DataFrame數(shù)組是Pandas中另一種數(shù)據(jù)結(jié)構(gòu),其數(shù)據(jù)的呈現(xiàn)方式類似于Excel這種二維表結(jié)構(gòu)。相比于Series數(shù)組,DataFrame可以存放多維數(shù)據(jù),所以DataFrame不僅僅有索引,還有列名,如下所示:

>>> d = {'one': [1, 2, 3, 4], 'two':['一', '二', '三', '四']}>>> pd.DataFrame(d)one two0 1 一1 2 二2 3 三3 4 四>>> df.indexRangeIndex(start=0, stop=4, step=1)>>> df.columnsIndex(['one', 'two'], dtype='object')

可以看到,DataFrame數(shù)組可以包含多維數(shù)據(jù),類似于一張二維表。與Series類似,DataFrame數(shù)組也有一個(gè)index索引,在不指定索引時(shí),通常會(huì)自動(dòng)生成從零開始步長(zhǎng)為1的索引。此外DataFrame數(shù)組還有一個(gè)列名,索引和列名是從數(shù)組中挑選數(shù)據(jù)的重要依據(jù)。

3.2 創(chuàng)建DataFrame數(shù)組

(1)通過字典創(chuàng)建

通過字典來創(chuàng)建DataFrame數(shù)組時(shí),字典的鍵將會(huì)自動(dòng)成DataFrame數(shù)組的列名,字典的值必須是可迭代對(duì)象,例如Series、numpy數(shù)組、list、tuple等,不同Series數(shù)組中對(duì)應(yīng)的缺失值pandas將自動(dòng)填充NaN:

以list列表為值的字典:

>>> d = {'one': [1, 2, 3, 4], 'two':['一', '二', '三', '四']}>>> pd.DataFrame(d)one two0 1 一1 2 二2 3 三3 4 四

以numpy數(shù)組為值得字典:

>>> d = {'zero': np.zeros((3,)), 'ones': np.ones((3,)), 'twos':np.full((3,),2)}>>> pd.DataFrame(d)zero ones twos0 0.0 1.0 21 0.0 1.0 22 0.0 1.0 2

以Series為值的字典:

>>> d = {'one': pd.Series([1., 2., 3.], index=['a', 'b', 'c']), 'two': pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}>>> df = pd.DataFrame(d) # 創(chuàng)建DataFrame數(shù)組>>> dfone twoa 1.0 1.0b 2.0 2.0c 3.0 3.0d NaN 4.0

無論是上面那種類型對(duì)象為值的字典,都可以通過下面的方式重新指定列索引:

>>> pd.DataFrame(d, index=['d', 'b', 'a'])one twod NaN 4.0b 2.0 2.0a 1.0 1.0

當(dāng)然,也可以在手動(dòng)指定列名,不過行索引對(duì)應(yīng)的鍵數(shù)據(jù)才會(huì)傳入新建的數(shù)組中:

>>> pd.DataFrame(d, index=['d', 'b', 'a'], columns=['two', 'three'])two threed 4.0 NaNb 2.0 NaNa 1.0 NaN

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

通過列表創(chuàng)建DataFrame數(shù)組時(shí),列表的每一個(gè)元素必須是字典,這樣,字典的鍵將作為列名。

>>> d = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}]>>> pd.DataFrame(d)a b c0 1 2 NaN1 5 10 20.0>>> pd.DataFrame(d, index=['第一行', '第二行']) # 重新指定索引a b c第一行 1 2 NaN第二行 5 10 20.0

(3)通過功能函數(shù)創(chuàng)建

我們還可以通過諸如from_dict()、from_records()這類的功能函數(shù)來創(chuàng)建DataFrame數(shù)組,以from_dict()為例:

>>> d = {'A': [1, 2, 3], 'B': [4, 5, 6]}>>> pd.DataFrame.from_dict(d)A B0 1 41 2 52 3 6

如果需要讓字典的鍵作為索引,重新指定列名,可以傳入orient='index'參數(shù),然后重新傳入列名:

>>> pd.DataFrame.from_dict(d,orient='index', columns=['one', 'two', 'three'])one two threeA 1 2 3B 4 5 6

3.3 DataFrame數(shù)組的常用屬性

DataFrame數(shù)組的屬性與Series數(shù)據(jù)幾乎一樣,只是多了一個(gè)保存列名信息的columns屬性,參看上面表格中的Series屬性就行了。

4 總結(jié)

本文大致介紹了Pandas中的兩種重要數(shù)據(jù)結(jié)構(gòu)Series數(shù)組對(duì)象和DataFrame數(shù)組對(duì)象的特點(diǎn)、主要?jiǎng)?chuàng)建方法、屬性。

作者:奧辰

https://www.cnblogs.com/chenhuabin/p/11436012.html

戳一下右下角在看小小舉動(dòng),大大支持~

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多