将一列字符串转换为pandas列表

发布于 2021-01-29 18:27:06

我在pandas数据框中的某个列的类型有问题。基本上,该列以字符串形式保存在csv文件中,我想将其用作元组,以便能够将其转换为数字列表。接下来是一个非常简单的csv:

ID,LABELS
1,"(1.0,2.0,2.0,3.0,3.0,1.0,4.0)"
2,"(1.0,2.0,2.0,3.0,3.0,1.0,4.0)"

如果使用函数“ read_csv”加载它,则会得到字符串列表。我试图转换为列表,但是得到了字符串的列表版本:

df.LABELS.apply(lambda x: list(x))

返回:

['(','1','.','0',.,.,.,.,.,'4','.','0',')']

关于如何做到这一点的任何想法吗?

谢谢。

关注者
0
被浏览
270
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以使用ast.literal_eval,这将给您一个元组:

    import ast
    df.LABELS = df.LABELS.apply(ast.literal_eval)
    

    如果确实需要列表,请使用:

    df.LABELS.apply(lambda s: list(ast.literal_eval(s)))
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看