Python 将列表中的字符串转换为列表

Python 将列表中的字符串转换为列表,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个像这样的数据框 query ----------- [] [(apple,10),(orange,15)] [(apple,2),(orange,5)] python将其作为字符串而不是列表来读取,因为 df['query'].apply(lambda x:len(x)) 第一行我得到2而不是0。有没有办法将其转换为列表。您可以使用: 操作系统,按列表理解: df['query'] = [x.strip('[]').split(',') for x in df['query']] 或

我有一个像这样的数据框

query
-----------
[]
[(apple,10),(orange,15)]
[(apple,2),(orange,5)]
python将其作为字符串而不是列表来读取,因为
df['query'].apply(lambda x:len(x))
第一行我得到2而不是0。有没有办法将其转换为列表。

您可以使用:

操作系统,按列表理解:

df['query'] = [x.strip('[]').split(',') for x in df['query']]
或使用:

或者

df['query'].apply(lambda x:len(ast.literal_eval(x)))
df['query'] = [x.strip('[]').split(',') for x in df['query']]
import ast
df['query'] = df['query'].apply(lambda x: ast.literal_eval(x))
df['query'] = df['query'].apply(ast.literal_eval)