【问题标题】:python dataframe how to convert set column to listpython数据框如何将设置列转换为列表
【发布时间】:2019-05-26 16:34:59
【问题描述】:

我尝试将一组列转换为 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}

【问题讨论】:

  • 这首先不应该是一个数据框。你在列中有非标量值,你让自己的生活变得更加艰难。通过这种结构,您将无法从 pandas 中获得任何好处。

标签: python list dataframe set


【解决方案1】:

你可以这样做:

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-Forward 如果您看到 mapapplylambdanp.vectorize(完全用词不当)...它在 Python 时间运行。
【解决方案2】:

使用apply:

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

因为使用list 不是一一处理整列。

或者做:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-05
    • 2018-10-30
    • 2021-04-12
    • 2021-04-19
    • 2019-11-16
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    相关资源
    最近更新 更多