데이터 분석과 데이터 과학
데이터 과학
통계학, 데이터 분석, 머신러닝, 데이터 마이닝 등을 아우르는 큰 개념이며 문제 해결을 위한 최선의 솔루션을 만드는 과정이다.
데이터 분석
유용한 정보를 발견하고 결론을 유추하거나, 의사 결정을 돕기 위해 데이터를 조사, 정제, 변환, 모델링하는 과정이다. 크게 기술통계, 탐색적 데이터 분석, 가설검정으로 나눌 수 있다.
- 기술통계: 관측이나 실험을 통해 수집한 데이터를 정량화하거나 요약하는 기법
- 탐색적 데이터 분석: 데이터를 시각적으로 표현하여 주요 특징을 찾고 분석하는 방법
- 주어진 데이터를 기반으로 특정 가정이 합당한지 평가하는 통계적 방법
데이터 마이닝
데이터에서 패턴 혹은 지식을 추출하는 작업을 말한다. 이러한 패턴과 지식은 사람이 의사 결정을 내리기 위해 필요하다.
도서 데이터 찾기
파일 인코딩 형식 확인하기(chardet.detect())
파이썬에서 chardet 패키지의 chardet.detect() 함수를 사용하면 문자 인코딩 방식을 알아낼 수 있다.
with open('남산도서관 장서 대출목록 (2021년 04월).csv', mode = 'rb') as f:
d = f.readline()
print(chardet.detect(d))
파이썬으로 CSV 파일 출력하기
with open('남산도서관 장서 대출목록 (2021년 04월).csv', encoding = 'EUC-KR') as f:
print(f.readline())
print(f.readline())
CSV 파일을 데이터프레임으로 읽기(read_csv())
- 다음과 같은 코드로 파일을 나누어 읽지 않고 한 번에 읽을 수 있다.
import pandas as pd
df = pd.read_csv('남산도서관 장서 대출목록 (2021년 04월).csv', encoding = 'EUC-KR', low_memory = False
- CSV 파일의 첫 행이 열 이름이 아니라면 read_csvf() 함수를 호출할 때 header 매개변수를 None으로 지정해서 데이터 터 첫 행에 열 이름이 없다는 것을 알리고, names 매개변수에 열 이름 리스트를 따로 전달해 주어야 한다. 이때 names 매개변수에 전달하는 열 이름에 중복된 이름이 있어서는 안 된다.
데이터프레임을 CSV 파일로 저장하기(to_csv())
- 판다스의 데이터프레임을 CSV로 저장할 때는 to_csv() 메서드를 사용한다. to_csv() 메서드는 기본적으로 UTF-8 형식으로 저장하기 때문에 나중에 open() 함수로 파일의 내용을 읽을 때 따로 encoding 매개변수를 사용하지 않아도 된다.
- CSV 파일을 저장하면 행 인덱스가 함께 저장된다. 따라서 이 파일을 다시 데이터프레임으로 읽으면 중복된 인덱스 열이 만들어진다. CSV 파일에 인덱스가 이미 있다는 것을 알려주려면 index_col 매개변수를 사용한다.
df.to_csv('ns_202104.csv')
with open('ns_202104.csv') as f:
for i in range(3):
print(f.readline(), end = '')
ns_df = pd.read_csv('ns_202104.csv', index_col = 0, low_memory = False)
ns_df.head()
# 애초에 인덱스 열을 빼고 저장할 수도 있다.
df.to_csv('ns_202104.csv', index = False)