2016-05-25 5 views
0

Ich bin in Pandas eine korr Tabelle BerechnungPandas korr Tabellenspalte Name Verhalten

df = pd.DataFrame(np.random.rand(6, 6)) 

c = df.corr() 

Aber wenn ich versuche, den Namen der Spalten zu ändern,

c.columns.name = 'col' 

ich das bekommen,

col   0   1   2   3   4   5 
col                
0 1.000000 0.051975 -0.171113 0.196975 0.057700 -0.008229 
1 0.051975 1.000000 -0.055077 -0.298845 -0.642585 -0.465581 
2 -0.171113 -0.055077 1.000000 -0.591092 0.051866 0.584618 
3 0.196975 -0.298845 -0.591092 1.000000 -0.327067 -0.059618 
4 0.057700 -0.642585 0.051866 -0.327067 1.000000 0.359508 
5 -0.008229 -0.465581 0.584618 -0.059618 0.359508 1.000000 

auch

print c.index.name 

col 

Warum passiert das?

Antwort

0

Wenn Sie die corr Methode ausführen und die Korrelationsmatrix erstellen, erhalten Sie eine quadratische Matrix, in der die Spalten den Zeilen entsprechen. Es ist praktisch, sowohl index als auch columns dem gleichen Objekt zuzuordnen. So zeigen c.index und c.columns auf die gleiche Sache. Um diesen Link zu unterbrechen, müssen Sie eine Kopie von sich selbst erstellen.

c.index = c.index.copy() 

c.columns.name = 'col' 

print c 

col   0   1   2   3   4   5 
0 1.000000 -0.208454 0.015920 0.397915 0.283203 -0.433138 
1 -0.208454 1.000000 0.384982 -0.881456 0.037897 0.430109 
2 0.015920 0.384982 1.000000 -0.308990 -0.744234 -0.078394 
3 0.397915 -0.881456 -0.308990 1.000000 -0.149954 -0.690244 
4 0.283203 0.037897 -0.744234 -0.149954 1.000000 0.325190 
5 -0.433138 0.430109 -0.078394 -0.690244 0.325190 1.000000 
+0

Ahh, das macht Sinn. Vielen Dank! – Brian

1

wenn Sie nur nach dem Index umbenennen, können Sie es auf diese Weise tun:

In [235]: c.rename_axis('col') 
Out[235]: 
      0   1   2   3   4   5 
col 
0 1.000000 -0.406438 0.715564 -0.354630 -0.313099 -0.723027 
1 -0.406438 1.000000 -0.512059 -0.369779 -0.201501 0.445913 
2 0.715564 -0.512059 1.000000 0.300887 0.105123 -0.558040 
3 -0.354630 -0.369779 0.300887 1.000000 0.750460 0.295423 
4 -0.313099 -0.201501 0.105123 0.750460 1.000000 -0.004003 
5 -0.723027 0.445913 -0.558040 0.295423 -0.004003 1.000000 
+0

Super nützlich. Vielen Dank. – Brian

Verwandte Themen