我有一个类似的数据框
query
-----------
[]
[(apple,10),(orange,15)]
[(apple,2),(orange,5)]
python将其读取为字符串而不是列表,因为当我这样做时
df['query'].apply(lambda x: len(x))
第一行得到2而不是0。有没有办法将其转换为列表。
答案 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)