python dataframe如何将集合列转换为列表

python dataframe如何将集合列转换为列表,python,list,dataframe,set,Python,List,Dataframe,Set,我试图在python数据框架中将集合列转换为列表,但失败了。不知道什么是最好的方法。谢谢 以下是一个例子: 我试图创建一个“c”列,将“b”集合列转换为列表。但“c”仍然是固定的 data = [{'a': [1,2,3], 'b':{11,22,33}},{'a':[2,3,4],'b':{111,222}}] tdf = pd.DataFrame(data) tdf['c'] = list(tdf['b']) tdf a b

我试图在python数据框架中将集合列转换为列表,但失败了。不知道什么是最好的方法。谢谢

以下是一个例子: 我试图创建一个“c”列,将“b”集合列转换为列表。但“c”仍然是固定的

data = [{'a': [1,2,3], 'b':{11,22,33}},{'a':[2,3,4],'b':{111,222}}]
tdf = pd.DataFrame(data)
tdf['c'] = list(tdf['b'])
tdf
           a             b             c
0  [1, 2, 3]  {33, 11, 22}  {33, 11, 22}
1  [2, 3, 4]    {222, 111}    {222, 111}

使用
应用

tdf['c'] = tdf['b'].apply(list)
因为使用
列表
是对整个列的操作,而不是逐个操作

或者:

tdf['c'] = tdf['b'].map(list)
你可以做:

import pandas as pd

data = [{'a': [1,2,3], 'b':{11,22,33}},{'a':[2,3,4],'b':{111,222}}]
tdf = pd.DataFrame(data)

tdf['c'] = [list(e) for e in tdf.b]

print(tdf)

这本来就不应该是数据帧。列中有非标量值,这让自己的生活更加艰难。通过这个结构,你将不会从熊猫身上得到任何好处。相关元:@U9向前,如果你看到
映射
应用
lambda
np.矢量化
(完全用词不当)。。。它在Python时间内运行。