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

urs*_*rei 6 python pandas

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

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

TypeError: unhashable type: 'list'
Run Code Online (Sandbox Code Playgroud)

是否有一种合理的方式来重新安排我的DataFrame,以便我可以使用这些值?

Mat*_*yra 9

您可以将字符串列表转换为字符串元组.元组是可以清洗的,因为它们是不可靠的.这当然是假设您不需要在创建后添加或删除这些列表.


mik*_*iku 5

您可以将不可变的对应项用于元组列表:

>>> import pandas as pd
>>> df = pd.DataFrame([[[1, 2], 'ab'], [[2, 3], 'bc']])
>>> df.groupby(0).groups
...
... TypeError: unhashable type: 'list'
Run Code Online (Sandbox Code Playgroud)

您可以apply在相应的列上进行转换:

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