简体   繁体   English

将字符串转换为列表

[英]Convert a string which is list to list

I have a data frame like 我有一个数据框

query
-----------
[]
[(apple,10),(orange,15)]
[(apple,2),(orange,5)]

python is reading this as a string instead of a list because when I do df['query'].apply(lambda x: len(x)) I get 2 instead of 0 for the first row. python将其读取为字符串而不是列表,因为当我执行df['query'].apply(lambda x: len(x)) ,第一行得到2而不是0。 Is there a way to convert this to a list. 有没有一种方法可以将其转换为列表。

You can use apply() : 您可以使用apply()

df['query'] = df['query'].apply(lambda x: x.strip('[]').split(','))

os, by list comprehension: 操作系统,通过列表理解:

df['query'] = [x.strip('[]').split(',') for x in df['query']]

or, use ast.literal_eval() : 或者,使用ast.literal_eval()

import ast
df['query'] = df['query'].apply(lambda x: ast.literal_eval(x))

or, 要么,

df['query'] = df['query'].apply(ast.literal_eval)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM