python-将字符串的列转换为以pandas列出

我在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',')']

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

谢谢.

解决方法:

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

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

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

df.LABELS.apply(lambda s: list(ast.literal_eval(s)))
上一篇:使用数组作为元组成员:有效的C 11元组声明?


下一篇:如何从元组C过滤重复类型