ast 라이브러리의 literal_eval 를 쓸 수 있다.

import ast

fake_list = '[1, 2, 3, 4, 5]'
ast.literal_eval(fake_list)

 

활용하게 된 경위

DataFrame의 한 칼럼이 리스트로 이루어져 있었는데, 

그 리스트의 자료형을 문자열로 바꿨다가, 다시 리스트 타입으로 바꿀 일이 있었다

각 열마다 적용하기 위해 apply(lambda) 했음

 

# list represented as string -> list
# ast.literal_eval func

import ast
df['fake_list'] = df.apply(lambda x: ast.literal_eval(x['fake_list']), axis=1)

 

복사했습니다!