강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của dswook
dswook

câu hỏi đã được viết

[Bản sửa đổi] Hướng dẫn hoàn hảo về máy học Python

9장 콘텐츠 기반 필터링 실습에 관련해서 질문 올립니다.

Viết

·

231

0

안녕하세요 실습하다 궁금한게 생겨서 질문 남깁니다.

from ast import literal_eval을 사용하셔서

movies_df의 "genres" 컬럼값을 문자열에서 리스트 형태로 변환하셨던데

저는 eval함수로 구현해서 되더라구요 eval함수와 literal_eval의 차이점이 무엇이기에 강사님은 literal_eval을 사용하셨나요? 

아래는 제 코드입니다.

movies_df["genres"] = movies_df["genres"].apply(lambda x : eval(x))
movies_df["genres"] = movies_df["genres"].apply(lambda x : [dic["name"for dic in x])

항상 좋은 강의 감사합니다.

통계python머신러닝 배워볼래요?

Câu trả lời 2

1

dooleyz3525님의 프로필 이미지
dooleyz3525
Người chia sẻ kiến thức

안녕하십니까,

아, 이게 eval()에서도 되는군요.

literal_eval은 ast 패키지에서 제공하는 함수입니다. 말 그대로 문자열을 evaluation에서 적절한 객체로 바꾸어 줍니다.

예를 들어 listral_string = "{ 'key_a': 10 }" 이라고 했다면 listeral_string 변수는 dictionary가 아니라 string 값입니다. 이 문자열을 parsing해서 적절한 객체(여기서는 dictionary)로 해석/변환하는 역할을 하는 것이 literal_eval 입니다.

감사합니다.

0

dswook님의 프로필 이미지
dswook
Người đặt câu hỏi

감사합니다.

Hình ảnh hồ sơ của dswook
dswook

câu hỏi đã được viết

Đặt câu hỏi