파이썬 코드 - 파이썬 라이브러리를 활용한 데이터 분석 中
※본 포스팅은 "파이썬 라이브러리를 활용한 데이터 분석"을 공부하면서 Python2로 작성된 샘플 코드를 Python3으로 변환할 때 발생하는 에러 혹은 수정 내용 등을 정리하기 위해 작성되었습니다.
open.path() 오류
Python3에서는 encoding을 명시해서 해줘야 하며, 맨 마지막 argument는 buffer에 대한 것이므로 encoding을 utf-8로 하기 위해서는 반드시 전달인자명 여기서는 encoding을 명시해줘야 한다.
1 2 3 | import json path = "파일명" records = [json.loads(line) for line in open(path, "r", encoding="utf8")] | cs |
참고자료
http://newpower.tistory.com/123
https://stackoverflow.com/questions/9969272/an-integer-is-required-when-opening-a-file-as-utf-8
KeyError 오류
다음은 예정된 오류에 대해서 알아본다... 표준 시간대를 알아보기 위한 코드에서 KeyError가 발생했다. 이는 모든 아이템이 해당 key를 가지고 가지고 있지 않아서 발생하는 문제이다. 두가지 방법으로 이를 해결할 수 있다.
하나는 책에서 명시한 대로 해당 키가 존재하는지 확인하여 존재하는 것만 읽는 것이다.(if 'tz' in rec)
다른 하나는 get() 함수를 사용해서 존재하는 것만 불러오는 방법이다.
1 | time_zones = [rec.get('tz') for rec in records] | cs |
하지만 get을 사용하면 리스트의 아이템 수에서 120개 정도 차이가 난다... 그 이유는 get은 "None"을 포함하기 때문에 모든 데이터에서 (해당 키가 없는 것도) 값을 불러와 리스트를 생성한 것이다. 실제 리스트 길이는 각각 98개, 97개이다.
1 2 3 4 | time_zones = [rec['tz'] for rec in records if 'tz' in rec] time_zones2 = [rec.get('tz') for rec in records] set(time_zones2) - set(time_zones) #결과: {None} | cs |
참고자료
2017/09/27 - [Data Science/Python] - 파이썬으로 데이터 분석하자 (2) - IPython 사용하기
'Data Science > 파이썬으로 데이터분석 하기' 카테고리의 다른 글
파이썬으로 데이터 분석하자 (5) - Matplotlib 기본 (2) | 2017.12.08 |
---|---|
파이썬으로 데이터분석하자 (4) - Pandas 기본 (7) | 2017.12.06 |
파이썬으로 데이터 분석하자 (3) - NumPy 기본 (4) | 2017.10.09 |
Python 기초 - NumPy Broadcasting 이해하기 (2) (1) | 2017.10.09 |
Python 기초 - NumPy로 선형대수 표현하기 (1) (2) | 2017.10.09 |
파이썬으로 데이터 분석하자 (2) - IPython 사용하기 (1) | 2017.09.27 |
Python 기초 - 일급함수(first-class)란 무엇인가 (2) | 2017.09.20 |
댓글