2017-06-29 17 views
6

考虑numpy.arrayi为什么使用列表作为值的索引可以使用,但对于列不能使用?

i = np.empty((1,), dtype=object) 
i[0] = [1, 2] 

i 

array([list([1, 2])], dtype=object) 

实施例1
index

df = pd.DataFrame([1], index=i) 
df 

     0 
[1, 2] 1 

实施例2
columns

df = pd.DataFrame([1], columns=i) 

导致这个时候显示它

df 
TypeError: unhashable type: 'list' 

然而,df.T作品!?


问题
为什么需要它的索引值是在一列哈希的背景下而不是在指数方面?为什么只有当它显示?

回答

-1

“unhashable type”错误通常意味着此例中的类型列表是可变的。可变类型不可哈希,因为它们在生成哈希代码后可能会更改。发生这种情况是因为您尝试使用列表作为关键字检索项目,但由于关键字必须可哈希,因此检索失败。

+0

在任何地方都没有基于密钥的检索。 –

相关问题