학습 개요
- 데이터 분석을 효과적으로 수행하려면 수집 된 데이터를 일시적으로 처리하는 데 그치지 않고 분석 목적에 맞게 적절한 형식으로 저장하고 재사용할 수 있도록 관리하는 과정이 필요함
- 다양한 환경과 시스템에서 데이터를 공유하거나 연동하려면 범용적인 저장 형식을 선택하고 데이터의 구조와 특성에 맞게 저장 전략을 수립해야 함
- 데이터 저장의 개념과 필요성을 이해하고, 파일 기반 저장(CSV, JSON, Excel 등)과 데이터베이스 기반 저장의 방식별 특징과 장단점을 비교 학습함
- pandas 라이브러리의 핵심 객체인 DataFrame을 생성하고 저장하는 다양한 방법을 실습함
- 공공 데이터 포털의 API를 활용한 실제 데이터 수집과 변환, 저장 사례를 통해, 외부 데이터와의 연계성과 저장 실습 경험을 통해 데이터 분석의 기본이 되는 수집 및 저장 기술을 체계적으로 학습함
학습 목표
- Pandas의 DataFrame을 활용하여 수집한 데이터를 처리할 수 있음
- DataFrame에 저장된 데이터를 다양한 형식으로 저장할 수 있음
- 데이터 수집 과정에서 발생할 수 있는 문제점을 인식하고 이를 해결하는 방법을 적용할 수 있음
강의록
데이터 저장의 이해
데이터 저장의 필요성
- 수집한 데이터를 영구적으로 사용할 수 있도록 적절하게 관리하는 과정
- 저장 방식은 데이터의 크기, 형태, 접근 빈도, 분석 목적 등에 따라 상이
- 저장 방식 별 특징, 장단점에 대해 구체적 이해 필요
- 데이터 저장 방식: 파일
- OS의 파일 시스템 상에서 데이터를 독립적인 단위로 저장
- 텍스트 파일, CSV 파일, JSON 파일 등 다양한 형태 가능
- 호환성이 뛰어나고 여러 환경에서 파일 읽기/쓰기 가능
- 대규모 데이터 처리에 비효율적이고 데이터 무결성과 보안 측면에서 취약
CSV(Comma Separated Version)
- MS 엑셀, 구글 스프레드시트, 데이터베이스 등 다양한 프로그램과 연동이 용이
DataFrame은 CSV와 구조적 유사성으로 CSV 파일로 변환하여 저장하는 방법을 제공
![image.png]()
JSON(JavaScript Object Notation)
- 계층 구조를 가진 데이터를 저장하는데 유용
json 또는 pandas 라이브러리를 사용하여 데이터를 JSON 파일로 저장 가능
class="highlight">1 2 3 4 5 6 7 8 9 10 11 12
[ { "이름": "홍길동", "나이": 25, "거주지": "서울", "관심사": [ "프로그래밍", "데이터 분석", "여행" ] } ]
데이터 저장 방식: 데이터베이스
수집한 정보를 효율적으로 보관하고 필요할 때 신속하게 활용하기 위한 체계적인 저장 시스템
![image.png]()
데이터베이스의 종류
- RDBMS
- 데이터를 행과 열로 구성된 테이블 형태로 저장 하고 SQL을 통해 데이터의 CRUD 수행
- 비RDBMS
- 문서, 키-값의 쌍, 그래프 등 다양한 유연한 방식의 저장 구조를 지원하고 유사 SQL 및 API를 통해 조작
- MongoDB, Cassandra, Redis, Elasticsearch 등이 대표적인 비관계형 데이터베이스
- RDBMS
Pandas DataFrame의 이해
DataFrame의 구조
- 2차원 테이블 형태의 자료 구조
표 형태 그 이상으로, 데이터를 효율적으로 처리하고 분석 할 수 있도록 설계
![image.png]()
DataFrame의 인덱스
| | student_id | database_score | cloudcomputing_score | python_score | watch_rate | | — | — | — | — | — | — | | 0 | 101 | 85 | 78 | 92 | 0.95 | | 1 | 102 | 76 | 82 | 78 | 0.87 | | 2 | 103 | 92 | 95 | 85 | 0.99 | | 3 | 104 | 63 | 70 | 75 | 0.80 | | 4 | 105 | 88 | 84 | 91 | 0.93 |
- DataFrame 생성 시 정수형 인덱스가 자동 부여
set_index()메소드를 사용하여 문자열, 날짜 등 특정 컬럼을 인덱스로 설정 가능- 특정 행을 빠르게 찾고, 데이터를 조작하는 데 사용
- 데이터는 DataFrame 내부에 NumPy의 배열 형태로 저장
- 데이터를 효율적으로 저장하고 고속의 수치 연산 수행
DataFrame 활용 예
class="highlight">1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
import pandas as pd data = { "이름": ["김철수", "이영희", "박민수", "최지훈"], "학년": [1, 2, 3, 4], "학점": [4.2, 3.8, 4.5, 3.9], "학과": ["컴퓨터학", "경영학", "농학", "교육학"], "동아리": ["프로그래밍", "독서", "로봇", "봉사"] } df = pd.DataFrame(data) print("index:\\n", df.index) print("\\ncolumns:\\n", df.columns) print("\\nvalues:\\n", df.values) print("\\nrows:\\n", df.values.tolist())
DataFrame 생성 함수
딕셔너리, JSON, CSV, 데이터베이스 등 다양한 형태의 원시 데이터(raw data)를 DataFrame으로 변환
데이터 유형 메소드명 설명 딕셔너리 from_dict()딕셔너리를 변환. 키는 열 이름, 값은 열 데이터로 설정 시퀀스(리스트, 튜플, 딕셔너리) from_records()레코드(리스트, 튜플, 딕셔너리)의 시퀀스를 변환 CSV read_csv()CSV 파일에서 변환 JSON read_json()JSON 파일/문자열에서 변환 엑셀 파일 read_excel()엑셀 파일에서 변환 HTML from_html()HTML 테이블 데이터를 변환 클립 보드 from_clipboard()클립보드(복사한 데이터)에서 변환 관계형 DB from_sql()SQL 결과 또는 DB 테이블에서 변환
DataFrame의 저장
- 데이터 수집하고 데이터 분석 후
- 데이터 분석 결과를 적절한 형태로 저장하여 보관
- 다른 시스템과 공유하는 과정이 필요
- DataFrame 객체는 저장된 데이터를 다양한 형식으로 저장하여 분석 결과를 활용하는 데 필요한 메소드 제공
to_로 시작하는 저장 메소드- DataFrame의 내용을 CSV, JSON, 엑셀, 데이터베이스 등 각기 다른 파일 형식이나 데이터 구조로 변환·저장
- 파일 형식 별 특징과 장·단점 이해 요구
DataFrame의 저장
메소드 설명 to_csv()CSV 파일로 저장 to_json()JSON 파일 또는 JSON 문자열로 저장 to_excel()엑셀 파일(.xlsx)로 저장 to_html()HTML 테이블 형식으로 변환 to_sql()관계형 데이터베이스(SQL 테이블)로 저장 to_clipboard()클립보드에 복사 to_dict()파이썬 딕셔너리(dictionary)로 변환 to_string()문자열로 변환하여 출력 to_markdown()마크다운(markdown) 형식의 문자열로 변환 개념 정리 실습
- 공공 데이터 포털(data.go.kr)의 API를 활용하여 대기 오염 정보를 수집하고, 분석 가능한 형태로 가공하는 과정을 실습
- 공공기관이 보유한 데이터를 제공하는 통합 플랫폼
- 교통, 환경, 보건, 문화 등 광범위한 분야의 데이터를 쉽게 활용할 수 있도록 개방
| 단계 | 주요 내용 | 사용 도구 / 방법 | | — | — | — | | 1. API 사용 준비 | - 공공 데이터 포털 가입
- 대기오염정보 API 신청
인증키 발급 https://www.data.go.kr 2. 데이터 수집 및 변환 - API 호출 - JSON 데이터 수신
DataFrame 변환 - requests 라이브러리 Pandas 라이브러리 3. 데이터 저장 - CSV 형식 저장 - JSON 형식 저장
Excel 형식 저장 DataFrame 메서드
개념 정리 실습-API 키
- 외부 서비스와의 통신을 위해 제공되는 인증 수단으로, 일반적으로 데이터 수집을 위한 API 호출 시 필요
- 외부 서버에 접근할 수 있도록 허가 받는 고유한 문자열
- 주의 사항
- 외부에 노출되지 않도록 철저히 관리(사용량 제한을 초과)
- 사용량을 모니터링하고 적절한 수준에서 관리
- 깃허브나 공개 저장소에 API 키를 업로드하지 않도록 주의
연습 문제
데이터 저장의 가장 주된 목적은 무엇인가? a. 데이터를 영구적으로 보관하고 재사용하기 위해
다음 중 파일 형식에 따라 DataFrame을 저장하는 방식이 가장 적절하게 연결된 것은?
a. Excel 파일 → to_excel()
다음 중 공공 데이터 포털 API 활용 시 일반적으로 필요한 작업이 아닌 것은?
a. 이미지 압축 알고리즘 구현
- 공공 데이터 포털 API 활용 시 일반적으로 필요한 작업
- 인증키 발급
- API 요청 주소 확인
- JSON 응답 데이터 처리
- 공공 데이터 포털 API 활용 시 일반적으로 필요한 작업
정리 하기
- 수집한 데이터를 적절한 형태로 저장하여 보관하거나 공유해야 함
- 데이터의 크기, 형태, 접근 빈도, 분석 목적에 따라 저장 방식이 달라짐
- 파일은 CSV, JSON, Excel 등 다양한 형식으로 저장할 수 있는 범용적 저장 방식임
- 파일은 대규모 데이터 처리에 비효율적이고 데이터 무결성과 보안 측면에서 취약함
- Pandas는 데이터 분석을 위한 핵심 라이브러리로 DataFrame 객체를 제공함
- DataFrame은 딕셔너리, 리스트, 파일 등 다양한 데이터 소스에서 생성할 수 있음
- DataFrame은 데이터를 CSV, JSON, Excel 등 다양한 형식으로 저장할 수 있음
ContentsA new version of content is available.


