跟著A米學Python:100堂課之第二十六課「pandas之旅開啟」

我們已經一起學習Python25堂課了,我通過學習已經可以用Python解決日常工作中許許多多平時需要一直重複性的工作。比如:自動分揀處理數據,自動生成每日生產報表等等。我10年沒有編程了,但是今年的疫情呆在家裡,看到了Python,我很快就喜歡上了它,並且很快能用它來幫我解決很多問題。如果你平時工作中需要經常做一些重複性的工作,特別是excel的文件操作,你一定要跟我們一起來開始快樂的Python學習之旅。

我們之前學習了一些Python的基礎知識,並且主要通過Python解決了Excel表格的關聯數據處理,也初步學習瞭解了numpy這個第三方庫的基礎知識。學習了這些基礎後,我們從今天開始,要來接觸在Python江湖無人不知無人不曉的大神級別的第三方庫:pandas->這隻可愛的功夫熊貓!

跟著A米學Python:100堂課之第二十六課「pandas之旅開啟」

如果你之前沒有接觸過pandas,你可能不知道它是什麼?如果你仔細和我們一起來學習差不多10堂課,我敢打包票,你一定會馬上喜歡上它,因為它就像我們的國寶熊貓,不僅可愛,而且功夫了得!來吧,一起來了解一下這隻熊貓。

一、什麼是pandas?Pandas是一個開源的,BSD許可的庫,為Python編程語言提供高性能,易於使用的數據結構和數據分析工具。這個是pandas網站的標準描述。順便說一下,pandas有專門的網站www.pandas.org,如果你想深入瞭解可以到網站上面詳細瀏覽。

二、pandas究竟能做什麼?前面我們初步介紹了numpy,它是專業的數據處理工具。pandas居於numpy,但是又強於numpy,其實也不能說強於,應該說比numpy更加靈活,更加貼近工作和生活,pandas就像魔法師手中的許願棒,你想要什麼好東西,和pandas說一下基本就能實現。普通辦公室白領可能用它來分析公司的業務發展趨勢,騰訊阿里等大公司可能用它來分析網站的數據,證券銀行等公司可以用它來分析金融形勢。。。

三、pandas的數據結構:上面說了一大通,可能你還是一臉懵逼!哈哈,很正常,要熟練掌握pandas並且應用到你的工作中,我保守估計至少要10堂課,和我們一起學習10堂課你可能就能初步把pandas編程你手中的魔法棒。今天就算是第一課吧,我們來初步瞭解pandas的基本屬性。我們還是結合jupyter來進行演示。

1、pandas的安裝:由於pandas不是Python的原生庫,使用之前需要安裝。安裝其實也非常簡單,一般這樣子安裝就可以啦。

A、用pip安裝:pip install pandas

B、用conda安裝:conda install pandas

如果你安裝不成功,百度一下,有很多詳細的介紹文章,我們這裡不做詳細介紹,有不懂的可以私信交流。

2、pandas的一維數組:Series,這個是pandas兩大數據結構之一:

跟著A米學Python:100堂課之第二十六課「pandas之旅開啟」

很簡單的,我們就創建了一個Series,可以看出,s1打印出來有幾個元素:

A、左邊的0、1、2、3、4:這個是pandas自動生成的索引;

B、右邊的12、14、16、18、20:這個是我們輸入的列表後生成的Series

C、下面的dtype:int64:這個是Series元素的數據類型。

pandas的Series的標準表達式為:s = pd.Series(data, index=index),這裡的data可以是多種數據,我們下面再舉3個例子來進一步瞭解Series。

(1)、data是一個字典:這裡的data指的是上面的pd.Series(data, index=index)裡面的data,我們用一個字典來舉例說明:

跟著A米學Python:100堂課之第二十六課「pandas之旅開啟」

可以看出,Series同樣可以通過索引取出對應的值,這個和字典的操作其實一樣。

(2)、data是一個數組:我們用numpy生成一個數組,傳入pandas生成一個Series,如下:

跟著A米學Python:100堂課之第二十六課「pandas之旅開啟」

這一次我們加了index,然後用索引也取出了對應的value,這裡我們的索引我們故意打亂,請大家特別注意!

(3)、data是一個標量值:比如是一個常數8。

跟著A米學Python:100堂課之第二十六課「pandas之旅開啟」

當data是標量值的時候,index是必不可少的!因為產生多少個標量值是由index決定的,就像本例,產生了4個8,主要是索引有4個。

3、pandas的二維數組:其實pandas的核心就是這個,在pandas中,專門稱之為DataFrame,你如果對DataFrame比較陌生,那麼我告訴你一個概念,你很快就能理解DataFrame了,就像下圖:

跟著A米學Python:100堂課之第二十六課「pandas之旅開啟」

上圖是不是非常熟悉?對了,就是我們大家非常熟悉,天天在用的Excel格式。這個格式就是pandas的DataFrame。這裡需要強調一下,當你在pd後面輸入的時候,D和F必須是大寫,當然如果你用的是pycharm,它會自動提示,但是如果使用其他沒有自動提示的編輯器,初學者可能就會犯錯,導致一直找不到是什麼原因導致了錯誤提示!

我們下面來生成一個DataFrame:

跟著A米學Python:100堂課之第二十六課「pandas之旅開啟」

data是一個字典,字典的value是一個Serie,生成DataFrame後你需要了解3個主要的知識點:

A、index:這個是行索引,在本例中是a、b、c、d

B、columns:這個是列索引,在本例中是one、two。需要注意,和Series不同,DataFrame有兩個索引,一個行索引,一個列索引。

C、數據:就是我們圖中顯示的4行2列的數據。但是大家需要注意的是,第4行第1列的數據為NaN,這個是pandas對沒有數據的規定表達方法。NaN其實就是沒有數據的意思。在本例中,由於第一個Series只有3個索引,所以系統自動在第四個位置補上NaN。

注意:我們為了幫助大家理解,用類似電子表格的概念來幫大家理解。如果要用Python的概念來理解的話,上面的NaN所在位置其實為第3行第0列。

DataFrame幾個需要掌握的幾種操作:

1、取某一行或者幾行的數據:

跟著A米學Python:100堂課之第二十六課「pandas之旅開啟」

這裡我們用到loc這個功能,它是專門用來操作DataFrame的,後面的學習中我們會詳細講述,這裡先略過。

取一列或者幾列的數據:這裡loc裡面帶的參數有兩個,如果只取一列,那麼逗號後面只跟一個列名,如果取多列,那麼就把列名放在同一個列表裡面:

跟著A米學Python:100堂課之第二十六課「pandas之旅開啟」

刪除某一行、某一列:pandas裡面用了drop這個功能。

跟著A米學Python:100堂課之第二十六課「pandas之旅開啟」

這裡有一個關鍵的知識點:刪除行的時候,需要加axis=0,刪除列的時候,需要加axis=1。這個大家只需要記住就行,也很好記,0代表行,1代表列。當然我們上面的操作其實沒有影響到df,如果要影響到,還需要增加一個參數inplace,如果要立即生效,就這樣操作:d f.drop('one',axis=1,inplace=True)。

好了,今天對pandas我們只做一個初步的認識,下節課我們再結合一些具體的例子來深入瞭解。如果你也喜歡Python,喜歡AI時代下面的編程
,想在自己的職場取得更好的成績,想自己的人生擁有更多的時間和財富,你可以關注我的頭條號,我們一起學習,一起探討。我也是新人,我也不斷在學習,這是我的學習筆記,我要至少學習100堂這樣子的課程。如果你願意,我們一起來努力吧!


分享到:


相關文章: