
- Python Pandas 教程
- Python Pandas - 首頁
- Python Pandas - 簡介
- Python Pandas - 環境搭建
- Python Pandas - 基礎
- Python Pandas - 資料結構介紹
- Python Pandas - 索引物件
- Python Pandas - 面板
- Python Pandas - 基本功能
- Python Pandas - 索引和資料選擇
- Python Pandas - Series
- Python Pandas - Series
- Python Pandas - 切片 Series 物件
- Python Pandas - Series 物件的屬性
- Python Pandas - Series 物件的算術運算
- Python Pandas - 將 Series 轉換為其他物件
- Python Pandas - DataFrame
- Python Pandas - DataFrame
- Python Pandas - 訪問 DataFrame
- Python Pandas - 切片 DataFrame 物件
- Python Pandas - 修改 DataFrame
- Python Pandas - 從 DataFrame 中刪除行
- Python Pandas - DataFrame 的算術運算
- Python Pandas - I/O 工具
- Python Pandas - I/O 工具
- Python Pandas - 使用 CSV 格式
- Python Pandas - 讀取和寫入 JSON 檔案
- Python Pandas - 從 Excel 檔案讀取資料
- Python Pandas - 將資料寫入 Excel 檔案
- Python Pandas - 處理 HTML 資料
- Python Pandas - 剪貼簿
- Python Pandas - 使用 HDF5 格式
- Python Pandas - 與 SQL 的比較
- Python Pandas - 資料處理
- Python Pandas - 排序
- Python Pandas - 重索引
- Python Pandas - 迭代
- Python Pandas - 連線
- Python Pandas - 統計函式
- Python Pandas - 描述性統計
- Python Pandas - 處理文字資料
- Python Pandas - 函式應用
- Python Pandas - 選項和自定義
- Python Pandas - 視窗函式
- Python Pandas - 聚合
- Python Pandas - 合併/連線
- Python Pandas - 多級索引
- Python Pandas - 多級索引基礎
- Python Pandas - 使用多級索引進行索引
- Python Pandas - 使用多級索引進行高階重索引
- Python Pandas - 重新命名多級索引標籤
- Python Pandas - 對多級索引進行排序
- Python Pandas - 二元運算
- Python Pandas - 二元比較運算
- Python Pandas - 布林索引
- Python Pandas - 布林掩碼
- Python Pandas - 資料重塑和透視
- Python Pandas - 透視
- Python Pandas - 堆疊和解堆疊
- Python Pandas - 熔化
- Python Pandas - 計算虛擬變數
- Python Pandas - 分類資料
- Python Pandas - 分類資料
- Python Pandas - 分類資料的排序和排序
- Python Pandas - 分類資料的比較
- Python Pandas - 處理缺失資料
- Python Pandas - 缺失資料
- Python Pandas - 填充缺失資料
- Python Pandas - 缺失值的插值
- Python Pandas - 刪除缺失資料
- Python Pandas - 使用缺失資料進行計算
- Python Pandas - 處理重複資料
- Python Pandas - 重複資料
- Python Pandas - 計數和檢索唯一元素
- Python Pandas - 重複標籤
- Python Pandas - 分組和聚合
- Python Pandas - GroupBy
- Python Pandas - 時間序列資料
- Python Pandas - 日期功能
- Python Pandas - Timedelta
- Python Pandas - 稀疏資料結構
- Python Pandas - 稀疏資料
- Python Pandas - 視覺化
- Python Pandas - 視覺化
- Python Pandas - 其他概念
- Python Pandas - 注意事項和陷阱
- Python Pandas 有用資源
- Python Pandas - 快速指南
- Python Pandas - 有用資源
- Python Pandas - 討論
Python Pandas - 統計函式
在資料分析中,瞭解資料中的模式和關係至關重要。Pandas 中的統計方法有助於從資料中提取有意義的資訊、模式和關係,使您能夠做出決策並分析資料的行為。
在本教程中,我們將探討 Pandas 中提供的一些關鍵統計函式。這些函式旨在幫助您以不同的方式總結和理解您的資料。無論您是想衡量隨時間的變化、評估變數之間的關係還是對資料進行排名,Pandas 都提供了您所需的工具。
分析分數變化
Pandas 中的 pct_change() 函式計算當前元素和先前元素之間的分數變化。它是瞭解資料如何隨時間演變的寶貴工具,通常用於金融資料分析。
示例
以下是使用 pct_change() 方法計算 Pandas Series 和 DataFrame 的當前元素和先前元素之間分數變化的示例。
import pandas as pd import numpy as np s = pd.Series([1,2,3,4,5,4]) print(s.pct_change()) df = pd.DataFrame(np.random.randn(5, 2)) print(df.pct_change())
其輸出如下所示:
0 NaN 1 1.000000 2 0.500000 3 0.333333 4 0.250000 5 -0.200000 dtype: float64 0 1 0 NaN NaN 1 -15.151902 0.174730 2 -0.746374 -1.449088 3 -3.582229 -3.165836 4 15.601150 -1.860434
預設情況下,pct_change() 對列進行操作;如果您想按行應用相同操作,則使用 axis=1() 引數。
瞭解協方差
協方差衡量兩個變數如何一起變化。在 Pandas 中,cov() 方法計算兩個 Series 物件之間的協方差或 DataFrame 中所有列對之間的協方差。
示例
以下是使用 Series.cov() 方法計算兩個 Series 物件之間協方差的示例。
import pandas as pd import numpy as np s1 = pd.Series(np.random.randn(10)) s2 = pd.Series(np.random.randn(10)) print(s1.cov(s2))
其輸出如下所示:
0.02429227824398636
示例
當對 DataFrame 應用協方差方法時,它會在所有列之間計算 cov()。
import pandas as pd import numpy as np frame = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e']) print(frame['a'].cov(frame['b'])) print(frame.cov())
其輸出如下所示:
-0.58312921152741437 a b c d e a 1.780628 -0.583129 -0.185575 0.003679 -0.136558 b -0.583129 1.297011 0.136530 -0.523719 0.251064 c -0.185575 0.136530 0.915227 -0.053881 -0.058926 d 0.003679 -0.523719 -0.053881 1.521426 -0.487694 e -0.136558 0.251064 -0.058926 -0.487694 0.960761
注意:觀察第一個語句中a和b列之間的cov,它與 DataFrame 上 cov 返回的值相同。
測量相關性
相關性顯示任何兩個值陣列(序列)之間的線性關係。Pandas corr() 函式支援不同的相關方法,包括 Pearson(預設)、Spearman 和 Kendall。
示例
此示例使用 corr() 函式計算 DataFrame 的兩列之間的相關性。
import pandas as pd import numpy as np frame = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e']) print(frame['a'].corr(frame['b'])) print(frame.corr())
其輸出如下所示:
-0.383712785514 a b c d e a 1.000000 -0.383713 -0.145368 0.002235 -0.104405 b -0.383713 1.000000 0.125311 -0.372821 0.224908 c -0.145368 0.125311 1.000000 -0.045661 -0.062840 d 0.002235 -0.372821 -0.045661 1.000000 -0.403380 e -0.104405 0.224908 -0.062840 -0.403380 1.000000
如果 DataFrame 中存在任何非數值列,則會自動將其排除。
排名資料
rank() 函式為 Series 或 DataFrame 中的元素分配排名。在多個元素具有相同值的情況下,它預設分配平均排名,但此行為可以調整。
示例
以下是使用 rank() 方法計算 Series 元素的數值資料排名的示例。
import pandas as pd import numpy as np s = pd.Series(np.random.randn(5), index=list('abcde')) s['d'] = s['b'] # so there's a tie print(s.rank())
其輸出如下所示:
a 1.0 b 3.5 c 2.0 d 3.5 e 5.0 dtype: float64
Rank 可選地接受一個引數 ascending,預設值為 true;當為 false 時,資料會反向排名,較大的值分配較小的排名。它支援不同的係數分解方法,由 method 引數指定:
average: 係數組的平均排名
min: 組中的最低排名
max: 組中的最高排名
first: 按其在陣列中出現的順序分配排名