如何使用Pandas将字符串转换回列表

11

我有一个文本文件,其中包含一些数据,其中一个列是这样的:

['BONGO', 'TOZZO', 'FALLO', 'PINCO']
为了加载文件,我使用pandas的to_csv函数。一旦数据框被加载,它看起来内容没问题,但是后来我意识到数据框中的项不是一个项目列表,而是一个字符串,其元素是列表的字符!df['column'] 返回这样一个字符串。
"['BONGO', 'TOZZO', 'FALLO', 'PINCO']"

不是像这样的列表:

['BONGO', 'TOZZO', 'FALLO', 'PINCO']
因此,如果我键入df ['column'] [0],我会得到'['而不是BONGO
为了将该字符串转换回其原始的列表格式,我应该怎么做?在使用to_csv函数时是否有任何输入应该使用?

1
eval(df['column'])? - Zero
1
@JohnGalt 不!!! - DYZ
eval是危险的,特别是当你从DataFrame中读取数据时,这个DataFrame可能是由其他来源创建的。@JohnGalt - ZdaR
1个回答

14

你可以使用ast.literal_eval作为:

>>> import ast
>>> a = "['BONGO', 'TOZZO', 'FALLO', 'PINCO']"
>>> print ast.literal_eval(a)
>>> ['BONGO', 'TOZZO', 'FALLO', 'PINCO']

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