import ast
# '채널' 열에 목록이 포함되어 있는지 확인
def safe_convert_to_list(value):
if isinstance(value, list):
return value
if isinstance(value, str):
try:
return ast.literal_eval(value)
except (ValueError, SyntaxError):
return [] # 변환에 실패하면 빈 리스트([])를 반환
return []
# '채널' 열을 목록 형식으로 변환
df['channels'] = df['channels'].apply(safe_convert_to_list)
# 각 채널에 새 열 만들기
for channel in ['web', 'email', 'mobile', 'social']:
df[channel] = df['channels'].apply(lambda x: channel in x)
# 원래 '채널' 열을 삭제
df = df.drop(columns=['channels'])
df.head()
코드 json이랑 비슷해보이지만 리스트로 해석가능
json 배열은 ["web", "email"]처럼 쌍따옴표로 감싸야 하고
위 코드는 ['web', 'email'] 이 형태라 문자열로 저장한 데이터 !