Python数据框架如何将集合列转换为列表。

4
我尝试将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}

1
这本来就不应该是一个数据框。你的列中有非标量值,这会让你的生活更加困难。通过这种结构,你将无法从pandas中获得任何好处。 - roganjosh
相关元信息:通用的“不要这样做”回答 - jpp
2个回答

2
使用apply函数:
tdf['c'] = tdf['b'].apply(list)

因为使用list会对整列进行操作而不是逐个元素操作。

或者这样做:

tdf['c'] = tdf['b'].map(list)

2
您可以这样做:
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)

1
如果你看到 mapapplylambdanp.vectorize(一个完全错误的名称)……那么它是在 Python 时间中运行。 - roganjosh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接