对category_code列按属性分组,但是属性存在一个列表里,不知道怎么拆开列表。
举个例子:
我的数据:
a b [a,b]
我想要的:
a b a
a b b
对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
不知道有没有解决你的问题,如果可以的话请点个采纳。