本文目錄一覽:
python計算多個數組的相關性
線性相關:主要採用皮爾遜相關係數來度量連續變量之間的線性相關強度;
線性相關係數|r| 相關程度
0=|r|0.3 低度相關
0.3=|r|0.8 中度相關
0.8=|r|1 高度相關
1 函數
相關分析函數:
DataFrame.corr()
Series.corr(other)
說明:
如果由數據框調用corr方法,那麼將會計算每個列兩兩之間的相似度
如果由序列調用corr方法,那麼只是計算該序列與傳入序列之間的相關度
返回值:
dataFrame調用:返回DataFrame
Series調用: 返回一個數值型,大小為相關度
2 案例
import pandas
data=pandas.read_csv(‘C:\\Users\\Desktop\\test.csv’)
print(data.corr())
#由數據框調用corr方法,將會計算每個列兩兩之間的相似度,返回的是一個矩形
print(data[‘人口’].corr(data[‘文盲率’]))
#由某一列調用corr方法,只是計算該序列與傳入序列(本例中的’文盲率’)之間的相關度
print(data[‘超市購物率’,’網上購物率’,’文盲率’,’人口’]).corr()
python相關性分析如何生成兩個相關性最強的兩門?
方法/步驟
第一步我們首先需要知道相關性主要有兩個方向,一個是正方向一個是負方向,相關性係數是衡量兩個變量之間影響程度,如下圖所示:
請點擊輸入圖片描述
第二步下面通過公式計算兩個變量之間相關性係數,代碼如下:
import numpy
import pandas
X = [52,19,7,33,2]
Y = [162,61,22,100,6]
#公式計算#均值XMean = numpy.mean(X)
YMean = numpy.mean(Y)
#標準差XSD = numpy.std(X)
YSD = numpy.std(Y)
#z分數ZX = (X-XMean)/XSD
ZY = (Y-YMean)/YSD#相關係數
r = numpy.sum(ZX*ZY)/(len(X))
print(r)
請點擊輸入圖片描述
第三步運行程序,可以得到相關性係數r ,r的值是0.999674032661831,相關性非常高,如下圖所示:
請點擊輸入圖片描述
第四步我們也可以通過numpy的corrcoef方法計算相關性係數,輸入代碼
t=numpy.corrcoef(X,Y)
print(t)
可以看到X與Y和Y與X的相關性係數,如下圖所示:
請點擊輸入圖片描述
請點擊輸入圖片描述
第五步我們也可以通過pandas的corr方法計算相關性係數,代碼
data = pandas.DataFrame({‘X’:X,’Y’:Y})
t2=data.corr()
print(t2)
得到了相同的結果,如下圖所示:
請點擊輸入圖片描述
請點擊輸入圖片描述
python數據分析模塊:numpy、pandas全解
一維數組情況:
二維數組情況:
3參數情況:
2參數情況:
1參數情況:
一維情況:
二維情況:
一維情況:
二維情況:
一維情況:
二維情況:第三個參數指定維度
只查看行數、或者列數
逗號隔開兩個索引
某些行
某些列
可以看出append()函數在二維數組中添加元素,結果轉為了一維數組。
那怎麼保持二維數組呢?可以設置axis參數按行或者按列添加
可以看出先把二維數組降成了一維數組,再在索引為1的位置添加元素。
那麼怎麼保持在二維添加元素呢? 同樣設置axis參數
也分按行和按列刪除
標記缺失值: isnan()函數
補充缺失值:
同樣axis參數可以指定拼接按行還是按列
2. hstack()函數:以水平堆疊的方式拼接數組
3. vstack()函數:以垂直堆疊的方式拼接數組
第二個參數還可以是數組,指定拆分的位置
hsplit()函數:橫向拆成幾個數組
vsplit()函數:縱向拆成幾個數組
數組與數組之間的運算
數組與數值的運算
可以指定整個數組求和,還是按行或者按列
axis=0:每一列的元素求和
axis=1:每一行的元素求和
axis=0:每一列求均值
axis=1:每一行求均值
axis=0:每一列求最大值
axis=1:每一行求最大值
pandas有兩個重要的數據結構對象:Series和DataFrame。
Series是創建一個一維數組對象,會自動生成行標籤。
會自動生成行列標籤
也可以用字典形式生成數據
在用字典生成數據的基礎上,同時指定行標籤
例如對下表的數據進行讀取
4月是第四個表,我們應把sheet_name參數指定為3;因為索引是從0開始的。
可以看出read_excel()函數自動創建了一個DataFrame對象,同時自動把第一行數據當做列標籤。
可以看出不給出header參數時,該參數默認為0。
header=1時結果如下:
header=None時結果如下:
index_col=0時,第0列為列標籤
index_col=0時
usecols=[2]:指定第二列
指定多列
數據如下:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-j1SHxY8y-1637655972909)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211114192949607.png)]
nrows=3時
head()函數中參數為空默認前5行
指定head(3)時如下
numpy模塊也是shape
查看特定列的書庫類型
特定列數據類型轉換
先查看一下所有數據
與單行相比,結果顯示的格式不一樣了
iloc()挑選:
或者給出區間
挑選數據要麼標籤,要麼索引挑選
或者
或者寫成區間
標籤挑選
或者索引挑選
先查看一下數據
或者用字典一對一修改
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-a6QKIoie-1637655972912)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123110431201.png)]
isin()函數查看錶中是否有該值
查看特定列是否有該值
可以看出上述代碼並沒有替換,那怎麼替換呢?
末尾插入一列
指定插入到哪列
axis參數可以指定刪除行還是刪除列
指定標籤刪除
指定索引刪除
方法三
指定行標籤刪除
指定索引刪除
方法三:
先查看所有數據
info()函數查看數據類型,還可以查看是否有缺失值
isnull()函數查看是否有缺失值
在numpy模塊中用isnan()函數
刪除有缺失值的行
刪除整行都為缺失值的行: 需要指定how參數
不同列的缺失值設置不同的填充值
默認保留第一個重複值所在的行,刪除其他重複值所在的行
保留第一個重複值所在的行
保留最後一個重複值所在的行
是重複的就刪除
降序如下
參數指定first時,表示在數據有重複值時,越先出現的數據排名越靠前
獲取產品為單肩包的行數據
獲取數量60的行數據
獲取產品為單肩包 且 數量60 的行數據
獲取產品為單肩包 或 數量60 的行數據
stack()函數轉換成樹形結構
how參數指定外連接
on參數指定按哪一列合併
concat()函數採用 全連接 的方式,沒有的數設置為缺失值
重置行標籤
效果與concat()一樣
末尾添加行元素
指定列求和
指定列求均值
指定列求最值
獲取單列的
corr()函數獲取相關係數
獲取指定列與其他列的相關係數
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-46g9qgQw-1637655972913)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123135643804.png)]
groupby()函數返回的是一個DataFrameBy對象,該對象包含分組後的數據,但是不能直觀地顯示出來。
分組後獲取指定列的匯總情況
獲取多列的匯總情況
獲取多列的情況
ta = pd.read_excel(‘相關性分析.xlsx’)
print(data)
corr()函數獲取相關係數
獲取指定列與其他列的相關係數
[外鏈圖片轉存中…(img-46g9qgQw-1637655972913)]
groupby()函數返回的是一個DataFrameBy對象,該對象包含分組後的數據,但是不能直觀地顯示出來。
分組後獲取指定列的匯總情況
獲取多列的匯總情況
獲取多列的情況
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/278923.html