将字符串转换为列表

时间:2019-03-29 20:53:11

标签: python pandas dataframe

我有一个类似的数据框

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

python将其读取为字符串而不是列表,因为当我这样做时 df['query'].apply(lambda x: len(x)) 第一行得到2而不是0。有没有办法将其转换为列表。

1 个答案:

答案 0 :(得分:1)

您可以使用apply()

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

操作系统,按列表理解:

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

或者使用ast.literal_eval()

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

或者

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