2016-11-29 3 views
3

Ich habe eine Korrelationsmatrix von einem Datenrahmen mit pandas.corr generiere:Wie Zeilen- und Spaltennamen aus Datenrahmen abgerufen werden?

cmat = sub1.corr() 

cmat 
Out[75]: 
      CESI001 CESI002 CESI003 CESI004 
CESI001 1.000000 0.829723 0.046925 0.074475 
CESI002 0.829723 1.000000 0.066766 0.073181 
CESI003 0.046925 0.066766 1.000000 -0.098427 
CESI004 0.074475 0.073181 -0.098427 1.000000 

Was ich versuche ein neuer Datenrahmen wird erzeugen zu tun, bestehend aus [Zeile, Spalte, Wert], wobei der Zellenwert erfüllt einig Kriterien. Ich habe in die Beschaffung der passenden Zellenwerte gelungen:

for i2,r2 in cmat.iterrows(): 
for item in cmat[i2]: 
    if ((item > 0.3) and (item < 0.9)): 
     print (item) 

Dies korrekt erzeugt:

0.829723365019 
0.829723365019 

Allerdings kann ich nicht nach hinten arbeiten von dort die Zeilen- und Spaltennamen abzurufen. Ich habe versucht.loc, .columname und mehrere andere Ansätze, die ich hier gelesen habe. Ich verstehe, dass es bei Python mehr um den gesamten Datenrahmen geht. Jede Anleitung geschätzt.

Antwort

2
  • stack aufreihen Zeilen und Spalten
  • query zu filtern, was Sie

cmat.stack().to_frame('item').query('.3 < item < .9') 

enter image description here

brauchen
Verwandte Themen