Python数据分析之pandas入门
生活随笔
收集整理的這篇文章主要介紹了
Python数据分析之pandas入门
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、pandas庫簡介
pandas是一個專門用于數(shù)據(jù)分析的開源Python庫,目前很多使用Python分析數(shù)據(jù)的專業(yè)人員都將pandas作為基礎(chǔ)工具來使用。pandas是以Numpy作為基礎(chǔ)來設(shè)計開發(fā)的,Numpy是大量Python數(shù)據(jù)科學計算庫的基礎(chǔ),pandas以此為基礎(chǔ),在計算方面具有很高的性能。pandas有兩大數(shù)據(jù)結(jié)構(gòu),這是pandas的核心,數(shù)據(jù)分析的所有任務(wù)都離開它們,分別是Series和DataFrame。二、pandas庫的安裝
paandas安裝較為簡單,如果使用Anaconda的話,就在終端輸入命令 “conda install pandas” 就能安裝;如果電腦安裝了pip的話,就在終端輸入命令 “pip install pandas” 就能安裝成功。安裝完成后,可以在終端輸入 “import pandas as pd” ,測試pandas是否安裝成功。三、Series的使用
Series用來表示一維數(shù)據(jù)結(jié)構(gòu),跟數(shù)組類似,它由兩個相關(guān)聯(lián)的數(shù)組組成,其中一個叫index的數(shù)組用來存儲標簽,這些標簽與另一個數(shù)組中的元素一一對應(yīng)。如下圖所示: 聲明Series對象時,需要調(diào)用Series()構(gòu)造函數(shù),并傳入一個數(shù)組作為Series的主數(shù)組,比如: import pandas as pd ser=pd.Series([12,33,55,66]) print(ser)'''輸出為 0 12 1 33 2 55 3 66 dtype: int64 '''運行上面的代碼,可以知道,如果不指定標簽,那么默認標簽就是從0開始遞增,我們也可以在聲明一個Series對象時給它指定標簽:
import pandas as pd ser=pd.Series([12,33,55,66],index=['a','s','d','f']) print(ser)'''輸出為: a 12 s 33 d 55 f 66 dtype: int64 ''' 我們可以通過Series的index很方便得到其內(nèi)部元素,或者為某元素賦值: import pandas as pd ser=pd.Series([12,33,55,66]) print(ser[2]) ser[2]=99 print(ser[2])'''輸出為: 55 99 ''' Series對象可以進行運算,比如加減乘除,也可以使用Numpy中的數(shù)學函數(shù)來對它進行計算: import pandas as pd ser=pd.Series([12,33,55,66]) ser2=ser/2 print(ser2)import numpy as np print(np.log(ser))'''輸出為: 0 6.0 1 16.5 2 27.5 3 33.0 dtype: float64 0 2.484907 1 3.496508 2 4.007333 3 4.189655 dtype: float64 ''' 從上面可以看出,Series對象似乎跟字典很相似,我們可以把Series對象當作字典來使用,我們在創(chuàng)建Series對象時,將創(chuàng)建好的字典傳入Series的構(gòu)造函數(shù)即可,這樣字典的鍵就組成了索引數(shù)組,每個索引對應(yīng)的元素就是字典中對應(yīng)的值: import pandas as pd dic={'wife':'kathy','son':'mary','mother':'lily','father':'tom'} ser=pd.Series(dic) print(ser)'''輸出為: wife kathy son mary mother lily father tom dtype: object '''四、DataFrame的使用
DataFrame這種數(shù)據(jù)結(jié)構(gòu)針對的是多維數(shù)據(jù),由按一定順序排列的多列數(shù)據(jù)組成,列之間的數(shù)據(jù)類型會不同,如下圖所示: 從圖中可以看出,DataFrame對象有兩個索引數(shù)組,第一個數(shù)組index與行相關(guān),這與Series相似,每個index標簽與所在行的所有元素相關(guān)聯(lián)。它的第二個數(shù)組包含一系列標簽,每個標簽下包含一列數(shù)據(jù)。可以將DataFrame理解為由多個Series對象組成的字典,每一列的名稱為字典的鍵,Series作為字典的值。 創(chuàng)建DataFrame對象的常用方法就是傳遞一個字典對象給DataFrame()構(gòu)造函數(shù): import pandas as pd dic={'name':['tom','mary','john','mike'],'age':[14,15,77,45],'sex':['男','男','女','男']} frame=pd.DataFrame(dic) print(frame)'''輸出為:name age sex 0 tom 14 男 1 mary 15 男 2 john 77 女 3 mike 45 男 ''' 跟Series對象類似。DataFrame如果沒有明確指定標簽,那么它的默認標簽也是從0開始遞增。如果我們想知道DataFrame對象所有列的名稱,則調(diào)用columns屬性就可以了,獲取索引列表的話就調(diào)用index屬性,調(diào)用values屬性將獲取所有的元素。可以給DateFrame對象添加列: import pandas as pd dic={'name':['tom','mary','john','mike'],'age':[14,15,77,45],'sex':['男','男','女','男']} frame=pd.DataFrame(dic) frame['weight']=[89,99,145,123] print(frame)'''輸出為:name age sex weight 0 tom 14 男 89 1 mary 15 男 99 2 john 77 女 145 3 mike 45 男 123 ''' 在數(shù)據(jù)處理中,有有時也會用到DataFrame的轉(zhuǎn)置操作,即把行變?yōu)榱?#xff0c;列變?yōu)樾?#xff0c;調(diào)用DataFrame的T屬性即可完成轉(zhuǎn)置: import pandas as pd dic={'name':['tom','mary','john','mike'],'age':[14,15,77,45],'sex':['男','男','女','男']} frame=pd.DataFrame(dic) print(frame.T)'''輸出為:0 1 2 3 name tom mary john mike age 14 15 77 45 sex 男 男 女 男 '''五、Series與DataFrame對象之間的運算
pandas允許Series對象與DataFrame對象進行運算,定義Series和DataFrame對象時,把Series對象的索引和DataFrame的列名稱保持一致: import pandas as pd import numpy as np frame=pd.DataFrame(np.arange(16).reshape((4,4)),index=['age','name','sex','weight'],columns=['john','tom','mary','cathy']) print(frame) ser=pd.Series(np.arange(4),index=['john','tom','mary','cathy']) print(ser) res=frame-ser print(res)'''輸出為:john tom mary cathy age 0 1 2 3 name 4 5 6 7 sex 8 9 10 11 weight 12 13 14 15john 0 tom 1 mary 2 cathy 3 dtype: int32john tom mary cathy age 0 0 0 0 name 4 4 4 4 sex 8 8 8 8 weight 12 12 12 12 ''' 可以看出,DataFrame對象的各元素分別減去了Series對象中索引與之相同的元素,DataFrame對象每一列的所有元素都執(zhí)行了減法操作。轉(zhuǎn)載于:https://www.cnblogs.com/IAMTOM/p/10216337.html
總結(jié)
以上是生活随笔為你收集整理的Python数据分析之pandas入门的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言的fgets 与 gets
- 下一篇: 安全可靠国产系统下的应用怎么搭建?