當試圖改進相關矩陣的列印視圖時
def view_corr(df):
df = df.unstack()
corr_f = df.sort_values(kind="quicksort", ascending=False)
corr_f = corr_f.dropna()
corr_f = corr_f[corr_f<1]
print(corr_f[corr_f>0.10])
data = {'A': [2,3,4,3,2],
'B': [2,1,6,4,2],
'C': [2,9,1,2,6],
'D': [8,2,3,7,2],
'E': [3,0,9,1,4]}
data = pd.DataFrame(data)
df_corr_matrix = data.corr.abs()
view_corr(df_corr_matrix)
我想洗掉多余的和空的行(標記為'<-',但我不知道如何在多索引資料框中處理這個問題
B C 0.774070
C B 0.774070 <-
E B 0.748474
B E 0.748474 <-
A 0.747018 <-
A B 0.747018
D C 0.639723
C D 0.639723 <-
E C 0.567548
C E 0.567548 <-
E A 0.460079
A E 0.460079 <-
D A 0.269665
A D 0.269665 <-
C A 0.264340
A C 0.264340 <-
D E 0.217736
E D 0.217736 <-
D B 0.086776
B D 0.086776 <-
uj5u.com熱心網友回復:
IIUC,你想使用drop_duplicates,所以函式看起來像:
def view_corr(df):
df = df.unstack()
corr_f = df.sort_values(kind="quicksort", ascending=False)
corr_f = corr_f.dropna().drop_duplicates() # <<<---- here
corr_f = corr_f[corr_f<1]
print(corr_f[corr_f>0.10])
僅供參考,您可以將上述函式撰寫為單行。例如,您可以使用&運算子過濾一次,而不是過濾兩次:
corr_f = (pd.DataFrame(data).corr().abs().stack()
.sort_values(kind="quicksort", ascending=False)
.drop_duplicates()
.where(lambda x: (x<1) & (x>0.1)).dropna())
輸出:
B C 0.774070
E B 0.748474
B A 0.747018
D C 0.639723
E C 0.567548
A 0.460079
D A 0.269665
C A 0.264340
D E 0.217736
dtype: float64
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/447932.html
標籤:Python python-3.x 熊猫 数据框
上一篇:按類別劃分的所有特征分布圖
