python dataframe数据分组 包含列表的数据怎么分组(如图)?

img

对category_code列按属性分组,但是属性存在一个列表里,不知道怎么拆开列表。

举个例子:
我的数据:
a b [a,b]
我想要的:
a b a
a b b

我想了个办法,先求出这每个list元素的长度,再将所有的元素补齐到最大长度的大小,从而可以将其转为ndarray,再转换为dataframe和原始的dataframe合并,见下列代码:

df=pd.DataFrame(np.array(a).T)
used_col=df[0]
length=used_col.map(lambda x:len(x))
max_l=length.max()
temp=used_col.map(lambda x:x+[np.nan]*(max_l-len(x)))
temp=np.array(temp.to_list())
temp=pd.DataFrame(temp)
df=df.drop(0,axis=1)
temp.columns=['cat1','cat2']
output=df.join(temp)

pd.DataFrame(np.array(a).T)
Out[71]: 
        0  1  2
0  [a, a]  1  4
1     [b]  2  5
2  [a, c]  3  6

out
Out[72]: 
   1  2 cat1 cat2
0  1  4    a    a
1  2  5    b  nan
2  3  6    a    c

不知道有没有解决你的问题,如果可以的话请点个采纳。