[ Pandas 특강 ]
- pd.read_csv('파일 경로')
- . : '현재 폴더의'
- ex) ./data/titanic.csv : 현재 폴더의 data 폴더의 titanic.csv 파일
- .. : '현재 위치의 윗 경로의'
- ex) ../python_course/data/titanic.csv : 현재 위치가 포함된 모폴더의 python_course라는 폴더의 data 폴더의 titanic.csv 파일
- ../.. : '현재 위치의 위의 윗 경로의'
- / : '최상위 폴더의' (root)
- loc : 무조건 라벨 기반, 행이든 열이든 둘다 무조건 라벨이 인자로 들어와야함!
- iloc : 무조건 인덱스 기반, 행이든 열이든 둘다 무조건 인덱스가 인자로 들어와야함!
- pandas를 배우는 이유
- 우리가 다룰 데이터는 어마어마한 큰 데이터임
- 이를 빠르게 처리하기 위해서 판다스를 사용함
- 엑셀로 할 수는 있지만 너무너무 느림
- 새로 컬럼 조합하고 생성하는 기능은 판다스가 엄청 빠름
- csv vs xlsx (vs parquet)
- csv 파일보다 xlsx가 더 무거움
- 데이터 로드하는데만 해도 더 오래걸림
- csv 파일은 텍스트 파일임
- xlsx는 협업하기 좋음
- parquet은 분석용으로 만들어진 것
- parquet이 제일 빠르고 가벼움
- 판다스도 지원함 (분석 친화적)
- csv나 xlsx가 느리고 무거울 때 parquet으로 변환하면 훨씬 빠르고 가벼움
| 개념 |
대응 언어 |
의미 |
비유 |
| NULL / 0 |
C, C++ |
아무것도 가리키지 않는 포인터 |
주소록에 적힌 번호가 없음 |
| None |
Python |
값이 존재하지 않음을 나타내는 객체 |
상자 안에 아무것도 없음 |
| NaN |
공통(부동소수점) |
숫자가 아님 (Not a Number) |
상자 안에 숫자가 아닌 '에러'가 들어있음 |
- NaN: 정의되지 않은 값
- 자신과도 같지 않음
- NaN == NaN 의 결과는 False (파이썬에서 유일하게 자기자신과 같지 않은 값)
- 전염성
- 어떤 숫자 계산에 NaN이 하나라도 섞이면 결과는 무조건 NaN이 됨
bios[bios['height_cm']>218][['name','height_cm']]
# chain indexing
# 문제가 생길 수 있음
bios.loc[bios['height_cm']>218, ['name','height_cm','born_region']]
# 파이썬 공식 문서에서도 권장하는 안전한 코드