【问题标题】:Converting Pandas DataFrame OrderedSet column into list将 Pandas DataFrame OrderedSet 列转换为列表
【发布时间】:2021-03-01 07:49:36
【问题描述】:

我有一个 Pandas DataFrame,其中一列是 OrderedSet,如下所示:

df

     OrderedSetCol
0    OrderedSet([1721754, 3622558, 2550234, 2344034, 8550040])

这是:

  from ordered_set import OrderedSet

我只是想将此列转换为列表:

df['OrderedSetCol_list'] = df['OrderedSetCol'].apply(lambda x: ast.literal_eval(str("\'" + x.replace('OrderedSet(','').replace(')','') + "\'")))

代码执行成功,但是我的列类型仍然是str 而不是list

type(df.loc[0]['OrderedSetCol_list'])

str

我做错了什么?

编辑:我的OrderedSetCol 也是一个字符串列,因为我正在从磁盘读取文件,该文件最初是从 OrderedSet 列保存的。

预期输出:

[1721754, 3622558, 2550234, 2344034, 8550040]

【问题讨论】:

  • 您能否与OrderedSetCol 分享您的示例数据框并提供预期输出。
  • 完成,希望对您有所帮助。

标签: python-3.x pandas list apply


【解决方案1】:

您可以像处理 OrderedSet 本身一样应用 list 调用:

df = pd.DataFrame({'OrderedSetCol':[OrderedSet([1721754, 3622558, 2550234, 2344034, 8550040])]})
df.OrderedSetCol.apply(list)

输出:

[1721754, 3622558, 2550234, 2344034, 8550040]

如果你的数据类型是字符串列:

df.OrderedSetCol.str.findall('\d+')

【讨论】:

    猜你喜欢
    • 2019-11-28
    • 2013-11-04
    • 2013-02-13
    • 2014-01-05
    • 2021-11-28
    • 1970-01-01
    相关资源
    最近更新 更多