Python Pandas庫的學習(三)

 

今天我們來繼續講解Python中的Pandas庫的基本用法

那麼我們如何使用pandas對數據進行排序操作呢?

food.sort_values("Sodium_(mg)",inplace= True)
print(food["Sodium_(mg)"])
food.sort_values("Sodium_(mg)",inplace=True,ascending= False)
print(food["Sodium_(mg)"])

我們對food,進行sort_values方法,會自動幫我們排序,第一個參數"Sodium_(mg)"是我們數據中的列名

意思是說,你要對哪一列數據進行排序,inplace 參數的意思是,你需要生成一個新的數據,還是在原來的基礎上進行,可以通過該參數指定

而sort_values排序的時候,就默認從小到大進行排序。

那麼我們想做一個從大到小的排序如何做呢?

ascending這個參數,是指定一個排序升降序。在這裏指定,默認該參數爲True,也就是從小到大

那麼我們在上面的代碼中可以看到,ascending參數設置爲Flase以後,即是從大到小

下面我們講個點單的例子,泰坦尼克號小案例

import pandas as pd
import numpy as np
titanic_survival = pd.read_csv("titanic_train.csv")
titanic_survival.head()

我現在有一下一些數據,每個值都代表不同的含義,實際是一個船人員信息表,有價格,有年齡,有名字,有座位編號,等等一些數據

下面我們將年齡這一列進行數據處理,看看能得到什麼結果,我們先查看了一下,前十個人的年齡如下

發現在5號人,的年齡爲NAN,也就是說,這個數據爲空,或者數據丟失。我們來對這個缺失值進處理

我們通過isnull方法,對數據進行判斷,判斷值是否爲空。可以看到爲True的說明數據丟失了

然後我們將這個爲空的數據作爲索引,可以找到全部數據中,數據丟失的值

那我們現在統計一下,有多少個數據丟失了,可以用len方法。統計數據爲空的值,爲177就可以得到177個數據爲空的值

我們得到了缺失值後,要對缺失值進行處理

 那麼我先對數據沒有做缺失值處理的情況下,進行一個求平均值的操作

我們可以看到,算出來的值是nan,說明有問題!所以我們不能把帶有缺失值得也計算在裏面

接下來我們對數據進行處理

一個基本的想法是這樣的,就是說,當前數據中,有值的,我們就拿出來進行平均計算,沒有值的,就不取出來進行運算

 

通過這樣的計算,我們可以得到,平均年齡爲29.6歲

這種方法可能有些麻煩,那麼Pandas中有沒有什麼好的方法可以直接幫我們處理呢? 答案是有的

我們用這樣一個簡單的方法,一步就可以幫我們取出年齡的平均值。

那我們繼續說些難一點的。我們在數據中,分了船艙有1, 2 ,3個等級,我們想計算一下,每個等級下的平均價格是多少

如何計算呢?

這段代碼的意思是,我先用for循環,在數據中找到,哪些人是一等艙的人,哪些人是二等艙的人,哪些人是三等艙的人

我們先講這些人的數據拿到手,拿到之後,我們進行列的定位,定位到價格這列,然後進行平均值,這樣就可以得到一個平均價格

分別爲以上三個,但是這種做法很麻煩,那麼pandas中有沒有一個更簡單的方法幫我們處理數據呢?看下面的代碼

我們有個需求,想算一下,3個艙位每個艙位的平均獲救人數的值

可以看到我們在pivot_table中,有三個參數,第一個參數爲index,就是說我們要對哪列數據進行統計

values則是說,你要在統計參數一的基礎上和哪個數據有關係,作爲統計。

第三個參數是aggfunc,就是說你要統計前面兩個參數的什麼值,我們這邊統計平均值。既可以獲得以上平均數據

那麼我們在計算一下,每個艙位的平均年齡是多少

我們可以直接按照這種方式進行計算,既可以得到每個艙的平均年齡,這裏可以看到我們沒有添加第三個參數因爲如果不加參數3,那麼系統會默認幫我們取平均值

 那我們又有了新的需求。我們現在想看看。一個量之間,與其他量的關係

我們將index設置爲登船地點,那麼values是船票的價格,和獲救與否,最後一個參數是計算總值。

這裏我們想得到的數據就是,分別在C、Q、S這三個碼頭登船的人的獲救總數

這個數據我們可以看到,C碼頭賣出了1萬多塊的票價,獲救人數是93人。以此類推

那麼我們先繼續看

因爲數據中有些缺失值,那麼我們想把這些缺失值都丟掉應該怎麼做呢?

dropna的意思就是說,丟棄當前的缺失值。我們 想去掉Age Sex中有缺失值的數據,需要將這兩列數據dropna方法中即可

我們繼續

那麼我想對數據,定位到具體的某個值,我們怎麼辦呢?

我們可以看到,我們想找第83個樣本的年齡,那麼我們只需要在參數中添加樣本編號,以及需要取到的數據對應的列名。

今天就先講到這裏,感謝大家的閱讀。謝謝!!

發佈了65 篇原創文章 · 獲贊 50 · 訪問量 70萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章