Hướng dẫn convert correlation matrix to dataframe python - chuyển đổi ma trận tương quan sang python khung dữ liệu

Tôi có ma trận tương quan sau đây được tạo bằng gấu trúc:

aaa     aaa       1.000000
aaa     bbb       0.346099
aaa     ccc       0.131874
aaa     ddd      -0.150910
aaa     eee       0.177589
bbb     aaa       0.346099
bbb     bbb       1.000000
bbb     ccc       0.177308
bbb     ddd      -0.384893
bbb     eee       0.301150
ccc     aaa       0.131874
ccc     bbb       0.177308
ccc     ccc       1.000000
ccc     ddd      -0.176995
ccc     eee       0.258812
ddd     aaa      -0.150910
ddd     bbb      -0.384893
ddd     ccc      -0.176995
ddd     ddd       1.000000
ddd     eee      -0.310137
eee     aaa       0.177589
eee     bbb       0.301150
eee     ccc       0.258812
eee     ddd      -0.310137
eee     eee       1.000000
2

symbol       aaa       bbb       ccc       ddd       eee
symbol                                                  
aaa     1.000000  0.346099  0.131874 -0.150910  0.177589
bbb     0.346099  1.000000  0.177308 -0.384893  0.301150
ccc     0.131874  0.177308  1.000000 -0.176995  0.258812
ddd    -0.150910 -0.384893 -0.176995  1.000000 -0.310137
eee     0.177589  0.301150  0.258812 -0.310137  1.000000

Từ DataFrame ở trên, tôi cần chuyển đổi nó thành khung 3 cột như sau:

aaa     aaa       1.000000
aaa     bbb       0.346099
aaa     ccc       0.131874
aaa     ddd      -0.150910
aaa     eee       0.177589
bbb     aaa       0.346099
bbb     bbb       1.000000
bbb     ccc       0.177308
bbb     ddd      -0.384893
bbb     eee       0.301150
ccc     aaa       0.131874
ccc     bbb       0.177308
ccc     ccc       1.000000
ccc     ddd      -0.176995
ccc     eee       0.258812
ddd     aaa      -0.150910
ddd     bbb      -0.384893
ddd     ccc      -0.176995
ddd     ddd       1.000000
ddd     eee      -0.310137
eee     aaa       0.177589
eee     bbb       0.301150
eee     ccc       0.258812
eee     ddd      -0.310137
eee     eee       1.000000

Như được hiển thị, nó là cùng một dữ liệu, chỉ được trình bày khác nhau. Mỗi cặp cột/hàng từ DataFrame gốc được nhóm lại với nhau thành hàng riêng trong DataFrame mới.

Thật không may, tôi không thể tìm ra cách hoàn thành việc này với kết quả là một khung dữ liệu. Tôi đã thử làm

aaa     aaa       1.000000
aaa     bbb       0.346099
aaa     ccc       0.131874
aaa     ddd      -0.150910
aaa     eee       0.177589
bbb     aaa       0.346099
bbb     bbb       1.000000
bbb     ccc       0.177308
bbb     ddd      -0.384893
bbb     eee       0.301150
ccc     aaa       0.131874
ccc     bbb       0.177308
ccc     ccc       1.000000
ccc     ddd      -0.176995
ccc     eee       0.258812
ddd     aaa      -0.150910
ddd     bbb      -0.384893
ddd     ccc      -0.176995
ddd     ddd       1.000000
ddd     eee      -0.310137
eee     aaa       0.177589
eee     bbb       0.301150
eee     ccc       0.258812
eee     ddd      -0.310137
eee     eee       1.000000
3 nhưng kết quả của việc này là
aaa     aaa       1.000000
aaa     bbb       0.346099
aaa     ccc       0.131874
aaa     ddd      -0.150910
aaa     eee       0.177589
bbb     aaa       0.346099
bbb     bbb       1.000000
bbb     ccc       0.177308
bbb     ddd      -0.384893
bbb     eee       0.301150
ccc     aaa       0.131874
ccc     bbb       0.177308
ccc     ccc       1.000000
ccc     ddd      -0.176995
ccc     eee       0.258812
ddd     aaa      -0.150910
ddd     bbb      -0.384893
ddd     ccc      -0.176995
ddd     ddd       1.000000
ddd     eee      -0.310137
eee     aaa       0.177589
eee     bbb       0.301150
eee     ccc       0.258812
eee     ddd      -0.310137
eee     eee       1.000000
4. Tôi cần nó là một khung dữ liệu để tôi có thể làm việc với các cột. Vấn đề khác với
aaa     aaa       1.000000
aaa     bbb       0.346099
aaa     ccc       0.131874
aaa     ddd      -0.150910
aaa     eee       0.177589
bbb     aaa       0.346099
bbb     bbb       1.000000
bbb     ccc       0.177308
bbb     ddd      -0.384893
bbb     eee       0.301150
ccc     aaa       0.131874
ccc     bbb       0.177308
ccc     ccc       1.000000
ccc     ddd      -0.176995
ccc     eee       0.258812
ddd     aaa      -0.150910
ddd     bbb      -0.384893
ddd     ccc      -0.176995
ddd     ddd       1.000000
ddd     eee      -0.310137
eee     aaa       0.177589
eee     bbb       0.301150
eee     ccc       0.258812
eee     ddd      -0.310137
eee     eee       1.000000
3 là nó không điền vào mỗi hàng, đây là một mẫu nhỏ của vấn đề:

aaa     aaa       1.000000
        bbb       0.346099
        ccc       0.131874
        ddd      -0.150910
        eee       0.177589
bbb     aaa       0.346099
        bbb       1.000000
        ccc       0.177308
        ddd      -0.384893
        eee       0.301150
etc...

Để tạo ma trận tương quan bằng Pandas:

df.corr()

Tiếp theo, bạn sẽ thấy một ví dụ với các bước để tạo ma trận tương quan cho một bộ dữ liệu nhất định.

Bước 1: Thu thập dữ liệu

Đầu tiên, thu thập dữ liệu sẽ được sử dụng cho ma trận tương quan.

Để minh họa, hãy để sử dụng dữ liệu sau đây về 3 biến:

Một B C
45 38 10
37 31 15
42 26 17
35 28 21
39 33 12

Bước 2: Tạo một khung dữ liệu bằng gấu trúc bằng cách sử dụng gấu trúc

Tiếp theo, hãy tạo một khung dữ liệu để ghi dữ liệu trên trong Python:

import pandas as pd

data = {'A': [45, 37, 42, 35, 39],
        'B': [38, 31, 26, 28, 33],
        'C': [10, 15, 17, 21, 12]
        }

df = pd.DataFrame(data)
print(df)

Khi bạn chạy mã, bạn sẽ nhận được DataFrame sau:

    A   B   C
0  45  38  10
1  37  31  15
2  42  26  17
3  35  28  21
4  39  33  12

Bước 3: Tạo ma trận tương quan bằng cách sử dụng gấu trúc

Bây giờ, hãy tạo một ma trận tương quan bằng cách sử dụng mẫu này:

df.corr()

Đây là mã Python hoàn chỉnh mà bạn có thể sử dụng để tạo ma trận tương quan cho ví dụ của chúng tôi:

import pandas as pd

data = {'A': [45, 37, 42, 35, 39],
        'B': [38, 31, 26, 28, 33],
        'C': [10, 15, 17, 21, 12]
        }

df = pd.DataFrame(data)

corr_matrix = df.corr()
print(corr_matrix)

Chạy mã trong Python và bạn sẽ nhận được ma trận sau:

          A         B         C
A  1.000000  0.518457 -0.701886
B  0.518457  1.000000 -0.860941
C -0.701886 -0.860941  1.000000

Bước 4 (Tùy chọn): Nhận biểu diễn trực quan của ma trận tương quan bằng cách sử dụng Seaborn và Matplotlib

Bạn có thể sử dụng các gói SeaBorn và Matplotlib để có được biểu diễn trực quan của ma trận tương quan.

Đầu tiên, nhập các gói Seaborn và Matplotlib:

import seaborn as sn
import matplotlib.pyplot as plt

Sau đó, thêm cú pháp sau ở dưới cùng của mã:

aaa     aaa       1.000000
aaa     bbb       0.346099
aaa     ccc       0.131874
aaa     ddd      -0.150910
aaa     eee       0.177589
bbb     aaa       0.346099
bbb     bbb       1.000000
bbb     ccc       0.177308
bbb     ddd      -0.384893
bbb     eee       0.301150
ccc     aaa       0.131874
ccc     bbb       0.177308
ccc     ccc       1.000000
ccc     ddd      -0.176995
ccc     eee       0.258812
ddd     aaa      -0.150910
ddd     bbb      -0.384893
ddd     ccc      -0.176995
ddd     ddd       1.000000
ddd     eee      -0.310137
eee     aaa       0.177589
eee     bbb       0.301150
eee     ccc       0.258812
eee     ddd      -0.310137
eee     eee       1.000000
0

Vì vậy, mã Python hoàn chỉnh sẽ trông như thế này:

aaa     aaa       1.000000
aaa     bbb       0.346099
aaa     ccc       0.131874
aaa     ddd      -0.150910
aaa     eee       0.177589
bbb     aaa       0.346099
bbb     bbb       1.000000
bbb     ccc       0.177308
bbb     ddd      -0.384893
bbb     eee       0.301150
ccc     aaa       0.131874
ccc     bbb       0.177308
ccc     ccc       1.000000
ccc     ddd      -0.176995
ccc     eee       0.258812
ddd     aaa      -0.150910
ddd     bbb      -0.384893
ddd     ccc      -0.176995
ddd     ddd       1.000000
ddd     eee      -0.310137
eee     aaa       0.177589
eee     bbb       0.301150
eee     ccc       0.258812
eee     ddd      -0.310137
eee     eee       1.000000
1

Bạn cũng có thể muốn xem lại nguồn sau giải thích các bước để tạo ma trận nhầm lẫn bằng Python. Ngoài ra, bạn có thể kiểm tra hướng dẫn này về việc tạo một ma trận hiệp phương sai trong Python.

Làm thế nào để bạn đọc một ma trận tương quan trong Python?

Giải thích ma trận tương quan mỗi ô trong lưới biểu thị giá trị của hệ số tương quan giữa hai biến. Đó là một ma trận vuông - mỗi hàng đại diện cho một biến và tất cả các cột đại diện cho các biến giống như các hàng, do đó số lượng hàng = số lượng cột.Each cell in the grid represents the value of the correlation coefficient between two variables. It is a square matrix – each row represents a variable, and all the columns represent the same variables as rows, hence the number of rows = number of columns.

Làm thế nào để bạn tìm thấy ma trận tương quan trong một khung dữ liệu trong Python?

Phương thức pandas dataFrame.corr () được sử dụng để tạo ma trận tương quan.Nó được sử dụng để tìm mối tương quan theo cặp của tất cả các cột trong khung dữ liệu. corr() method is used for creating the correlation matrix. It is used to find the pairwise correlation of all columns in the dataframe.

Làm thế nào để bạn sắp xếp một ma trận tương quan trong Python?

Bây giờ, để sắp xếp ma trận tương quan, trước tiên chúng ta phải chuyển đổi ma trận thành chuỗi một chiều.Hàm unstack () được sử dụng để làm như vậy ...
Nhập mô -đun ..
Tải dữ liệu..
Tạo một ma trận tương quan bằng cách sử dụng dữ liệu trên ..
Sắp xếp dữ liệu ..
Hiển thị dữ liệu được sắp xếp ..

Corr () làm gì trong Python?

Corr () được sử dụng để tìm mối tương quan theo cặp của tất cả các cột trong khung dữ liệu pandas trong Python.Bất kỳ giá trị NAN nào được tự động loại trừ.Bất kỳ loại dữ liệu hoặc cột không phải là số trong DataFrame, nó bị bỏ qua.find the pairwise correlation of all columns in the Pandas Dataframe in Python. Any NaN values are automatically excluded. Any non-numeric data type or columns in the Dataframe, it is ignored.