CSV(Comma-Separated Values)
CSV(Comma Separated Values)는 데이터를 텍스트 형식으로 저장하기 위해 널리 사용되는 파일 형식입니다.
파있너은 CSV 파일을 쉽게 다룰 수 있는 강력한 기능들을 제공합니다.
1. CSV란?
쉼표(,)로 값들이 구분된 텍스트 파일입니다.
2. CSV를 이용해 파일을 읽고 값찾기
- Colab 가상머신 할당(연결) 합니다.
- Colab에서 Google Drive를 마운트(연결) 합니다.
- Google Drive 'Colab Notebooks/Github/Txt_File' 폴더에 'csv_enam' 파일을 업로드 합니다.
저는 이파일을 이용했습니다.
- csv_exam.csv 파일을 읽기 모드로 open.
- 파일의 첫번째 줄은 컬럼 이름이기 때문에, 읽고 추가 작업 없이 건너뛰기.
- 파일의 두번째 줄부터 마지막 줄까지 한 줄씩 읽으면서 반복:
- 각 줄에서 읽은 내용을 쉼표(,)로 구분한 리스트들을 저장하는 리스트를 만들기.
- `[['1', '1', '50', '98', '50'],['2', '1', '60', '97', '60'], ...]`
- 위에서 만들어진 2차원 리스트의 모든 값들을 숫자로 변환.
- `[['1', '1', '50', '98', '50'],['2', '1', '60', '97', '60'], ...]`
- 2차원 숫자 리스트에서 수학 점수들로만 이루어진 1차원 리스트를 만들기.
- `[50, 60, 45, ...]`
- 수학 점수의 평균, 최댓값, 최솟값을 찾기.
1) Colab 가상머신 할당후 Google Drive를 마운트 합니다.
2) Google Drive `Colab Notebooks/Github/Txt_File` 폴더에 `csv_enam`파일을 업로드 합니다.
3) Student 클래스 생성
저는 클래스를 생성해 csv 내용 값을 찾아냈습니다.
4) csv_exam.csv 파일을 읽기 모드로 open 합니다.
5) 파일의 첫 번째 줄은 컬럼 이름이기 때문에, 읽고 추가 작업 없이 건너뛰고, 두번째 줄부터 마지막 줄가지 한 줄식 읽으면서 반복하기.
`with open(file, mode='rt')` 를 이용해 파일을 읽어 옵니다.
'for'문을 돌리기 전에 첫 줄은 컬럼 이름이기 때문에, 먼저 한 줄을 빼고 `for`문을 들어갑니다.
`f.readline()`으로 한 줄씩 파일을 읽어오고 `for`문을 이용해 전체를 한 줄씩 읽어 오도록 합니다.
`list`에 `split(',')`을 이용해 한 줄에 쉼표(,)를 기준으로 글을 짤라서 `list`객체에 저장을 합니다.
`students` 객체를 생성한 곳에 class `Student`를 이용해 객체를 저장합니다.
6) 수학 점수의 평균, 최댓값, 최솟값을 찾습니다.
평균 구하기
`math_total` 객체에 전체 수학 점수 합을 구합니다.
전체 합에서 객체 수를 나누면 평균이 나오기 때문에, `math_total`에서 `len(students_math)`를 나눠 줍니다.
결과 값을 출력하면 `57.45`가 출력됩니다.
최댓값, 최솟값 구하기
최댓값은 `max`객체에, 최솟값은 `min`객체에 저장하기 위한 객체를 생성합니다.
기본 값은 `students_math`의 인덱스 0번을 기준으로 잡았습니다.
반복문을 통해 `max` 값보다 더 큰 값이 나오면 `max`에 저장해줍니다.
`min`값보다 더 작은 값이 나오면 `min`에 저장해줍니다.
출력 결과를 보시면 최댓값 = 90과 최솟값 = 20이 출력됩니다.
파이썬에서 CSV 파일을 다루는 방법을 알아보았습니다.
csv 모듈을 사용하여 CSV파일을 읽고 쓸 수 있으며,
CSV 파일을 다룰 줄 알면 다양한 데이터 처리 작업에 유용하게 활용할 수 있습니다.
잘못된 정보는 댓글로 알려주시면 감사하겠습니다.
'Python' 카테고리의 다른 글
Python - 27. 파이썬 NumPy 라이브러리 (0) | 2023.07.29 |
---|---|
Python - 25. Colab 가상머신에서 구글 드라이브 연결(Mount) (0) | 2023.07.27 |
Python - 24. 파이썬에서 파일 읽기(read) (0) | 2023.07.26 |
Python - 23. 파이썬 파일 쓰기(write) (0) | 2023.07.25 |
Python - 22. 파이썬 오류 처리(Error Handling) (0) | 2023.07.24 |