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 № 1Uż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