pandas .unique() 报错:TypeError: unhashable type: 'list'

3

我有一个Pandas数据框的列,其中包含SQL的“标签”,我很好奇这些标签的唯一值是什么。

如果我使用tags.m_tags.unique()来处理我的Pandas数据框列,会出现TypeError:unhashable type: 'list'错误。

手动查看数据中的m_tags,它以列表形式呈现如下:

[reheat, cmd]
[discharge, temp, air, sensor]
[flow, air, sensor]
[zone, temp, air, sensor]

有人知道如何解决这个问题吗?

1个回答

8

只需使用explode()方法并将unique()方法链式应用:

result=tags['m_tags'].explode().unique()

现在,如果您打印result,您将得到所需的输出。

编辑: 如果您有字典,则使用:

result=df['tags'].apply(lambda x:list(x.values())).explode().unique()

1
非常感谢,那个有效了,我会在可以的时候点击绿色的X。 - bbartling
你是否有类似的提示,将一个独立的列作为字典“标签”,而不是列表类型。否则会出现错误TypeError: unhashable type: 'dict' - bbartling
如果需要的话,我可以在SO上发布一个新问题。 - bbartling
我会尝试...请问那个字典长什么样? - Anurag Dabas
{'equip_name': 'VMA-1-7', 'equip_type': 'vav'} - bbartling
更新了我的回答...请看一下 :) - Anurag Dabas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接