📌 데이터 불러오기
👉 대표적인 파일 종류와 불러오기 방법
| 파일 형식 | 함수 | 예시 |
|---|
| CSV | pd.read_csv() | pd.read_csv('data.csv') |
| Excel | pd.read_excel() | pd.read_excel('data.xlsx') |
| JSON | pd.read_json() | pd.read_json('data.json') |
| SQL | pd.read_sql() | pd.read_sql('SELECT * FROM table', conn) |
| HTML | pd.read_html() | pd.read_html('https://example.com') |
👉 read_csv() 주요 옵션 정리
df = pd.read_csv('파일경로.csv',
encoding='utf-8',
sep=',',
header=0,
names=['A','B','C'],
usecols=['A','B'],
index_col=0,
skiprows=1,
na_values=['?', 'NA']
)
👉 자주 발생하는 문제들
| 문제 | 원인 | 해결 방법 |
|---|
| 한글이 깨진다 | 인코딩 문제 (utf-8 ↔ cp949) | encoding='cp949' 또는 encoding='utf-8-sig' 사용 |
| 열이 제대로 안 나뉜다 | 구분자가 쉼표가 아님 | sep='\t' (탭), `sep=' |
| 컬럼명이 없다 | 헤더가 없는 파일 | header=None, names=['A', 'B', 'C'] 등으로 수동 지정 |
| 컬럼명이 중복된다 | 동일한 컬럼명이 존재함 | 기본 설정으로 해결되며, 필요 시 mangle_dupe_cols=True 명시 |
| 숫자가 문자열로 들어옴 | 데이터 타입 추론 오류 | dtype={'col': int} 또는 나중에 astype()으로 변환 |
| 불필요한 행이 읽힘 | 머릿말, 각주 등으로 인한 문제 | skiprows=1 또는 skiprows=[0,2]로 건너뛰기 |
| 결측치가 숫자처럼 보임 | '-', 'N/A' 등의 기호 | na_values=['-', 'N/A'] 지정해서 결측 처리 |
👉 read_excel() 주요 옵션
df = pd.read_excel('파일명.xlsx',
sheet_name=0,
header=1,
usecols='A:C',
skiprows=[0,2],
na_values=['-']
)
👉 예외 처리 (try-except)
try:
df = pd.read_csv('data.csv')
except FileNotFoundError:
print("파일이 존재하지 않습니다.")
except pd.errors.ParserError:
print("CSV 구문 오류 발생!")
👉 이 단계에서 꼭 확인해야 할 체크리스트
- 데이터가 잘 불러와졌는가?
- 한글이 깨지지 않았는가?
- 컬럼명이 제대로 되어 있는가?
- 결측값이 어떤 형태로 들어왔는가? (na_values 옵션 확인)
- 필요 없는 행(머릿말, 각주 등)이 들어오지 않았는가?