数据分析与挖掘-python常用数据探索函数
生活随笔
收集整理的這篇文章主要介紹了
数据分析与挖掘-python常用数据探索函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在python中,主要兩個庫用于數據探索,一個是Pandas(用于數據分析,這可能是數據分析領域最強的python庫),另一個是Matplotlib(用于數據可視化,繪制圖表,起源于MATLAB)。
1.基本統計特征函數
下面介紹的函數主要作為Pandas的兩大基本對象Series和DataFrame的方法出現。
| 方法名 | 函數功能 |
| sum() | 計算和(按列) |
| mean() | 計算平均數(按列) |
| var() | 計算方差(按列) |
| std() | 計算標準差(按列) |
| corr() | 計算相關系數矩陣 |
| cov() | 計算協方差矩陣 |
| skew() | 計算三階矩 |
| kurt() | 計算四階矩 |
| describe() | 給出基本描述 |
給出如下數據。
測試代碼:
# -*- coding: utf-8 -*- import pandas as pd source = './test.xlsx' data = pd.read_excel(source, index_col='ID') print("打印數據類型") print(type(data)) data_0 = data["A"] print("打印數據類型") print(type(data_0)) # 求和 print("求和") print(data.sum()) print(data_0.sum()) print("計算算數平均數") # 計算算數平均數 print(data.mean()) print(data_0.mean()) # 計算方差 print("計算方差") print(data.var()) print(data_0.var()) # 計算標準差 print("計算標準差") print(data.std()) print(data_0.std()) # 計算相關系數 print("計算相關系數") # method為計算方法,可選為pearson,kendall,spearman print(data.corr(method='pearson')) print(data["A"].corr(data["B"])) # 計算協方差矩陣 print("計算協方差矩陣") print(data.cov()) print(data.loc[101].cov(data.loc[102])) # 計算階矩 print("計算階矩") print(data.skew()) print(data_0.kurt()) # 基本統計量 print("基本統計量") print(data.describe()) print(type(data.describe())) print(data.describe().loc["mean"])運行結果:
2.拓展統計特征函數
數據類型擁有的累計函數。
| 方法名 | 函數功能 |
| cumsum() | 依次求前n個數的和 |
| cumprod() | 依次求前n個數的積 |
| cummax() | 依次求前n個數的最大值 |
| cummin() | 依次求前n個數的最小值 |
?
Pandas擁有的累計函數。
pd.rolling_method(data,k)
上面的method替換名字為基本函數名稱如pd.rolling_var(data,k)為每k列計算一次方差。
注意:新版本Pandas已經將這些方法修改到基礎類型中了,什么的語句此時應該data=data.rolling(k).var()。
測試代碼:
import pandas as pd import matplotlib.pyplot as plt data = pd.Series(range(2, 9)) # 累計計算 print("累計計算") print(data.cumsum()) print(data.cumprod()) print(data.cummax()) print(data.cummin())運行結果:
3.統計作圖函數
Pandas對Matplotlib命令做了不少簡化,因此常常結合使用。
| 函數名 | 功能 |
| plot(x,y,S) | 繪制線性二維圖,折線圖(y相對于x,即x為橫軸,樣式為S) |
| pie(attrs) | 繪制餅圖 |
| hist(x,y) | 繪制條形圖,x表示數據集,y表示組數 |
| boxplot() | 繪制樣本數據的箱型圖 |
| plot(yerr=error) | 繪制誤差條形圖 |
常用配置代碼:
import matplotlib.pyplot as plt # 顯示中文,不加為方框 plt.rcParams['font.sans-serif'] = ['SimHei'] # 顯示負號 plt.rcParams['axes.unicode_minus'] = False # 創建圖像區域,指定比例(可以不指定) plt.figure(figsize=(8, 6))測試代碼:
import pandas as pd import matplotlib.pyplot as plt import numpy as np # 顯示中文,不加為方框 plt.rcParams['font.sans-serif'] = ['SimHei'] # 顯示負號 plt.rcParams['axes.unicode_minus'] = False # 創建圖像區域,指定比例(可以不指定) plt.figure(figsize=(8, 6))# 繪制線性圖 x = np.linspace(0, 2*np.pi, 50) y = np.sin(x) plt.plot(x, y, 'bp--') plt.show() # 也可以直接用DataFrame或者Series調用plot方法,指定繪圖類型(kind),默認index為橫坐標 plt.figure() data = pd.DataFrame([[1, 2, 3], [2, 3, 4]]) data.plot(kind='line', ) plt.show()# 餅圖 plt.figure() labels = ["A", "B", "C", "D"] sizes = [15, 30, 45, 10] colors = ['yellow', 'green', 'lightskyblue', 'lightcoral'] explode = [0, 0.1, 0, 0] plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=90) plt.axis('equal') plt.show()# 條形圖 plt.figure() x = np.random.randn(1000) plt.hist(x, 10) plt.show()# 箱型圖 plt.figure() D = pd.DataFrame([x, x+1]).T D.plot(kind='box') plt.show()# 誤差條形圖 error = np.random.randn(10) y = pd.Series(np.sin(np.arange(10))) y.plot(yerr=error) plt.figure() plt.show()運行結果:
具體代碼包括實戰項目可以查看我的github。
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的数据分析与挖掘-python常用数据探索函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓进阶系列-03上弹选择框(Popup
- 下一篇: 数据分析与挖掘-python常用数据预处