【資料處理】Pandas庫:陣列運算
theme: cyanosis highlight: a11y-dark
持續創作,加速成長!這是我參與「掘金日新計劃 · 10 月更文挑戰」的第4天,點選檢視活動詳情
注意:本案例使用 Jupyter Notebook 進行案例演示
1. Pandas陣列運算
1.1 統計運算
在資料處理中,可以使用以下函式檢視資料的基本情況,獲取統計學基本資料資訊,比如平均值,中位數等,該方法只會針對資料型別的數進行統計計算,對於字串形式的列無效。
data.describe()
- 返回值:
- count:樣本個數
- mean:平均值
- std:標準差
- min:最小值
- max:最大值
- 25%:25%分位數
- 50%:中位數 — 75%:75%分位數
匯入相關庫並讀取資料:讀取資料以後,使用上述函式進行統計計算
import pandas as pd
people = pd.read_csv("data/data140190/人口.csv")
people.describe()
執行結果如下圖所示:將統計基本資訊進行了計算。
.max()
函式
- 可以求陣列最大值
- 預設按照每列進行計算:axis=0
獲取資料的最大值:
people.max() # 預設按列求最大值 axis=0
執行結果如下圖所示:
.idxmax()
函式:
- 可以獲取最大值所在的位置
- 返回所在位置的索引
```python
獲取最大值所在位置
people.idxmax() ``` 執行結果如下圖所示:
1.2 累計統計函式
.cumsum()
函式
- 作用主要就是計算軸向的累加和。
- axis=0:按行累加
- axis=1:按列累加
- 可以通俗理解成:返回陣列的第n個數就是原陣列前n個數的累加
對錶中年份那一列進行累加,並將返回的陣列繪製成折線圖
people["年份"].cumsum()
people["年份"].cumsum().plot()
執行結果如下圖所示:注意此步需要匯入matplotlib模組,import matplotlib.pyplot as plt
1.3 自定義運算
apply(func, axis=0)
- func:自定義函式
- axis=0:預設是列,axis=1為行運算
案例:定義每一列最大值-最小值操作
案例中還用到了lambda表示式,在此簡單普及一下:
- 在python中使用lambda表示式表示匿名函式(即沒有函式名的函式)
- lambda在內部只能包含一行程式碼
- :後面就是函式體
- <函式物件名> = lambda <形式引數列表>:<表示式>
people.apply(lambda x: x.max()-x.min())
執行結果如下圖所示:
1.4 邏輯運算
邏輯運算子號 1. $<$ 2. $>$ 3. | 4. &
1.4.1 邏輯運算子
比如,我想篩選出年份>2010的資料,就用到了邏輯運算子:
people[people["年份"] >2010]
執行結果如下圖所示:
1.4.2 邏輯運算函式
query(expr)
- expr:查詢字串 通過query使得剛才的過程更加方便簡單
比如,我們還想判斷年份裡是否有2018和2019,具體程式碼如下所示:
people["年份"].isin([2018, 2019])
執行結果如下圖所示:True表示是你想要查詢的內容,False表示不是你想要查詢的內容
- 【深度學習】TensorFlow線性迴歸案例演示(3)
- 【機器學習】LSTM神經網路實現中國人口預測(2)
- 【資料處理】北京市租房案例實戰(5)
- 【資料處理】Pandas庫:畫圖與檔案讀取
- 【資料處理】Pandas庫:陣列運算
- 【資料處理】北京市租房案例實戰(3)
- 【PaddleDetection深度學習】中國交通標誌影象分類任務
- 【資料處理】北京市租房案例實戰(4)
- 【資料處理】北京市租房案例實戰(2)
- 【資料處理】Seaborn-NBA資料分析案例(4)
- 【深度學習】工業安全生產環境違規使用手機的識別
- 【資料處理】北京市租房案例實戰(1)
- 【資料處理】Seaborn-NBA資料分析案例(2)
- 【Numpy】資料處理-Numpy庫基本介紹
- 【Numpy資料處理】ndarray介紹
- 【深度學習】醫學影像目標檢測-瘧原蟲識別問題
- Linux作業系統-基本使用(1)
- 智慧演算法-粒子群演算法(3)
- 智慧演算法-粒子群演算法(2)
- 智慧演算法-禁忌搜尋演算法(2)