Python Pandas庫的學習(三)

 

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

那麼咱們如何使用pandas對數據進行排序操做呢?3d

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)"是咱們數據中的列名code

意思是說,你要對哪一列數據進行排序,inplace 參數的意思是,你須要生成一個新的數據,仍是在原來的基礎上進行,能夠經過該參數指定blog

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

那麼咱們想作一個從大到小的排序如何作呢?索引

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

那麼咱們在上面的代碼中能夠看到,ascending參數設置爲Flase之後,便是從大到小it

下面咱們講個點單的例子,泰坦尼克號小案例for循環

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

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

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

發如今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個樣本的年齡,那麼咱們只須要在參數中添加樣本編號,以及須要取到的數據對應的列名。

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

 更多好文章:https://www.yuanrenxue.com/

相關文章
相關標籤/搜索