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
2symbol 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
0Vì 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
1Bạ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.