我在熊猫中计算一个corr表,
df = pd.DataFrame(np.random.rand(6, 6))
c = df.corr()
但是当我尝试更改列的名称时,
c.columns.name = 'col'
我明白了,
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
此外,
print c.index.name
col
为什么会这样?
答案 0 :(得分:1)
如果你刚刚重命名索引,你可以这样做:
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
答案 1 :(得分:0)
当您执行corr
方法并生成相关矩阵时,最终会得到一个方形矩阵,其中列与行相同。将index
和columns
分配为同一个对象很方便。因此c.index
和c.columns
指向同一件事。要打破这个链接,你需要制作一个自己的副本。
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