对包含列表的Pandas列的组操作

时间:2013-10-28 12:39:35

标签: python pandas

我有一个包含列props的DataFrame,其中包含字符串列表。

理想情况下,我想按此专栏进行分组,但是当我这样做时,我可以预料到会出错:

TypeError: unhashable type: 'list'

有没有合理的方法来重新安排我的DataFrame,以便我可以使用这些值?

2 个答案:

答案 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在相应列上进行转换:

>>> df[0] = df[0].apply(tuple)
>>> df.groupby(0).groups
{(1, 2): [0], (2, 3): [1]}