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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

《Python 数据分析》笔记——pandas

發布時間:2024/10/12 python 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Python 数据分析》笔记——pandas 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Pandas

pandas是一個流行的開源Python項目,其名稱取panel data(面板數據)與Python data analysis(Python 數據分析)之意。

pandas有兩個重要的數據結構:DataFrame和Series

pandas數據結構之DataFrame

pandas的DataFrame數據結構是一種帶標簽的二維對象,與Excel的電子表格或者關系型數據表非常相似。

可以用下列方式來創建DataFrame:

1.從另一個DataFrame創建DataFrame

2.從具有二維形狀的Numpy數組或者數組的復合結構來生成DataFrame

3.類似地,可以用pandas的另一種數據結構Series來創建DataFrame.關于Series,后文介紹

4.DataFrame也可以從類似CSV之類的文件來生成

考察pandas的DataFrame及其各種屬性

(1)首先,將數據文件載入DataFrame,并顯示其內容:

(2)DataFrame有一個屬性,以元組的形式來存放DataFrame的形狀數據,這與ndarray非常相似,我們可以查詢一個DataFrame的行數


(3)下面通過其他屬性來考察各列的標題與數據類型


(4)pandas的DataFrame帶有一個索引,類似于關系型數據庫中數據表的主鍵(primary key)。對于這個索引,我們既可以手動規定,也可以讓pandas自動創建。訪問索引時,使用相應的屬性即可


(5)有時我們希望遍歷DataFrame的基礎數據,如果使用pandas的迭代器,遍歷列值的效率可能會很低。更好的解決方案是從基礎的Numpy數組中提取這些數值,然后進行相應的處理。不過,pandas的DataFrame的某一個屬性可以在這方面為我們提供幫助


Pandas數據結構之Series

pandas的Series數據結構是由不同類型的元素組成的一維數組,該數據結構也具有標簽。可以通過下列方式來創建pandas的Series數據結構。

1.由Python的字典來創建Series

2.由Numpy數組來創建Series

3.由單個標量來創建

創建Series數據結構時,可以向構造函數遞交一組軸標簽,這些標簽通常稱為索引,是一個可選參數。默認情況下,如果使用Numpy數組作為輸入數據,那么pandas會將索引值從0開始遞增。如果傳遞給構造函數的數據是一個Python字典,那么這個字典的鍵會經排序后變成相應的索引;如果輸入數據是一個標量值,那么就需要由我們來提供相應的索引。索引中的每一個新值都要輸入一個標量值。pandas的Series和DataFrame數據類型接口的特征和行為是從Numpy數組和Python字典那里借用來的

(1)首先,選中輸入文件中的第一列,即Country列;然后顯示這個對象在局部作用域中的類型


(2)pandas的Series數據結構不僅共享了DataFrame的一些屬性,還另外提供了與名稱有關的一個屬性。


(3)為了演示Series的切片功能,這里以截取Series變量Country中的最后兩個國家為例進行說明


(4)Numpy的函數同樣適用于pandas的DataFrame和Series數據結構


可以在DataFrame、Series和Numpy數組之間進行各種類型的數值運算。

利用pandas查詢數據:

(1)head()和tail()這兩個函數的作用類似于UNIX系統中同名的兩個命令,即選取DataFrame的前n和后n個數據記錄,其中n是一個整型參數:


(3)下面用最近的日期來查詢最近一年太陽黑子的相關數據:


(4)下面介紹如何通過YYYYMMDD格式的日期字符串來查詢日期,具體如下所示:


(5)索引列表也可用于查詢


(6)要想選擇標量值,有兩種方法,這里給出的是速度明顯占優勢的第二種方法。它們需要兩個整數作為參數,其中第一個整數表示行,第二個整數表示列:


(7)查詢布爾型變量的方法與SQL的Where子句非常接近


利用pandas的DataFrame進行統計計算

pandas的DataFrame數據結構為我們提供了若干統計函數。

describe:這個方法將返回描述性統計信息

count:這個方法將返回非NaN數據項的數量

mad:這個方法用于計算平均絕對偏差,即類似于標準差的一個有力統計工具

median:這個方法用于返回中位數

min:這個方法將返回最小值

max:這個方法將返回最大值

mode:這個方法將返回眾數

std:這個方法將返回標準差

var:這個方法將返回方差

skew:這個方法用來返回偏態系數,該系數表示的是數據分布的對稱程度

kurt:這個方法將返回峰態系數,該系數用來反映數據分布曲線頂端尖峭或扁平程度


利用pandas的DataFrame實現數據聚合

(1)為Numpy的隨機數生成器指定種子,以確保重復運行程序時生成的數據不會走樣


(2)通過Weather 列為數據分組,然后遍歷各組數據


(3)變量Weather_group是一種特殊的pandas對象,可由groupby()生成。這個對象為我們提供了聚合函數,下面展示它的使用方法:


(4)恰如利用數據庫的查詢操作那樣,也可以針對多列進行分組


(5)通過agg()方法,可以對數據組施加一系列的Numpy函數


DataFrame的串聯與附加操作

數據庫的數據表有內部連接和外部連接兩種連接操作類型。實際上,pandas的DataFrame也有類似的操作,因此我們也可以對數據行進行串聯和附加。我們將使用前面章節中的DataFrame來練習數據行的串聯和附加操作

函數concat()的作用是串聯DataFrame,如可以把一個由3行數據組成的DataFrame與其他數據行串接,以便重建原DataFrame:


為了追加數據行,可以使用append()函數:


連接DataFrames

pandas提供的merge()函數或DataFrame的join()實例方法都能實現類似數據庫的連接操作功能。默認情況下,join()實例方法會按照索引進行連接,不過,有時不符合我們的要求

雖然,pandas支持所有的這些連接類型(內部連接、左外連接、右外連接與完全外部連接等操作)

(1)用merge()函數按照員工編號進行連接處理


(2)用join()方法執行連接操作時,需要使用后綴來指示左操作對象和右操作對象:

這個方法會連接索引值,因此得到的結果與SQL內部連接會有所不同

(3)用merge()執行內部連接時,更顯式的方法如下所示:

只要稍作修改,就可以變成完全外部連接:


處理缺失數據問題

對于pandas來說,它會把缺失的數值標為NaN,表示None;還有一個類似的符號是NaT,不過它代表的是datetime64型對象。對NaN這個數值進行算數運算時,得到的結果還是NaN。

pandas的isnull()函數可以幫我們檢查缺失的數據,使用方法如下。


類似地,可以用DataFrame的notnull()方法來考察非缺失數據:


通過fillna()方法,可以用一個標量(如0)來替換缺失數據,盡管有時可以用0替換缺失數據,但是事情并不總是如此

數據透視表

數據透視表可以從一個平面文件中指定的行和列中聚合數據,這種聚合操作可以是求和、求平均值、求標準差等運算

由于pandas API已經為我們提供了頂級pivot_table()函數以及相應的DataFrame方法,所以,只要設置好aggfunc參數,就可以讓這個聚合函數來執行Numpy中諸如sum()之類的函數。參數cols用來告訴pandas要對哪些列進行聚合運算。

轉載于:https://www.cnblogs.com/yifdu25/p/8411673.html

總結

以上是生活随笔為你收集整理的《Python 数据分析》笔记——pandas的全部內容,希望文章能夠幫你解決所遇到的問題。

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