标签: python pandas
我有一个包含列props的DataFrame,其中包含字符串列表。
props
理想情况下,我想按此专栏进行分组,但是当我这样做时,我可以预料到会出错:
TypeError: unhashable type: 'list'
有没有合理的方法来重新安排我的DataFrame,以便我可以使用这些值?
答案 0 :(得分:8)
您可以将字符串列表转换为字符串元组。元组是可以清洗的,因为它们是不可靠的。这当然是假设您不需要在创建后添加或删除这些列表。
答案 1 :(得分:5)
您可以使用列表的不可变对应项,即tuples:
>>> import pandas as pd >>> df = pd.DataFrame([[[1, 2], 'ab'], [[2, 3], 'bc']]) >>> df.groupby(0).groups ... ... TypeError: unhashable type: 'list'
您可以apply在相应列上进行转换:
apply
>>> df[0] = df[0].apply(tuple) >>> df.groupby(0).groups {(1, 2): [0], (2, 3): [1]}