TIL

모서아·2025년 1월 3일
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'] 이 형태라 문자열로 저장한 데이터 !

0개의 댓글