Gui*_*oni 4 python string tuples list 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)"
Run Code Online (Sandbox Code Playgroud)
如果使用“ read_csv”函数加载它,则会得到字符串列表。我试图转换为列表,但是得到了字符串的列表版本:
df.LABELS.apply(lambda x: list(x))
Run Code Online (Sandbox Code Playgroud)
返回:
['(','1','.','0',.,.,.,.,.,'4','.','0',')']
Run Code Online (Sandbox Code Playgroud)
关于如何做到这一点的任何想法?
谢谢。
df['LABELS'] = df['LABELS'].str.strip('()').str.split(',')
Run Code Online (Sandbox Code Playgroud)
但是,如果NaN
这里不存在,也可以list comprehension
很好地工作:
df['LABELS'] = [x.strip('()').split(',') for x in df['LABELS']]
Run Code Online (Sandbox Code Playgroud)
您可以使用ast.literal_eval
,这将给您一个元组:
import ast
df.LABELS = df.LABELS.apply(ast.literal_eval)
Run Code Online (Sandbox Code Playgroud)
如果确实需要列表,请使用:
df.LABELS.apply(lambda s: list(ast.literal_eval(s)))
Run Code Online (Sandbox Code Playgroud)