/ / Jak wybrać kolumny, które są silnie skorelowane z jedną określoną kolumną w ramce danych - python, panda, korelacja, tabular

Jak wybrać kolumny, które są silnie skorelowane z jedną określoną kolumną w ramce danych - python, pandy, korelacje, tabele

Mam ramkę danych, która ma ponad 100 kolumn,z którym próbuję zbudować model. W tym przypadku jedna kolumna (A) w tej ramce danych jest traktowana jako odpowiedź, a wszystkie pozostałe kolumny (B, C, D itd.) Są predykatorami. Próbuję więc wybrać wszystkie kolumny, które są skorelowane z kolumną A na podstawie współczynnika korelacji (powiedzmy> 0,2). Już wygenerowałem mapę cieplną z wszystkimi współczynnikami korelacji pomiędzy każdą parą kolumn. Ale czy mogę mieć szybką metodę w pandach, aby uzyskać wszystkie kolumny o współczynniku kolokacji ponad 0,2 (który oczywiście dostosuję w razie potrzeby) do kolumny A? Z góry dziękuję!

Odpowiedzi:

1 dla odpowiedzi № 1

Użyj DataFrame obliczyć korelację, a następnie podzielić kolumny według stanu odcięcia za pomocą maski Boole'a.

import pandas as pd
df = pd.DataFrame({"A": [1,2,3,4,5,6,7,8,9,10],
"B": [1,2,4,3,5,7,6,8,10,11],
"C": [15,-1,17,-10,-10,-13,-99,-101,0,0],
"D": [0,10,0,0,-10,0,0,-10,0,10]} )

df.loc[:, df.corr()["A"] > 0.2]

A   B
0   1   1
1   2   2
2   3   4
3   4   3
4   5   5
5   6   7
6   7   6
7   8   8
8   9   10
9   10  11