소개
데이터 분석에서 첫 번째 단계는 종종 데이터를 구조화된 형식으로 로드하는 것입니다. 강력한 Python 라이브러리인 Pandas 는 이 작업을 탁월하게 수행합니다. CSV 와 같은 플랫 파일에서 데이터를 읽는 가장 일반적인 함수는 pandas.read_csv()입니다. 이 함수는 매우 유연하며 다양한 파일 형식과 잠재적인 문제를 처리하기 위한 광범위한 매개변수를 제공합니다.
이 실습에서는 pd.read_csv()를 사용하여 CSV 파일에서 Pandas DataFrame 으로 데이터를 가져오는 방법을 배우게 됩니다. 주석 처리 방법, 헤더 지정, 누락된 값 관리 및 로드된 데이터의 초기 검사를 수행하는 방법을 다룰 것입니다.
read_csv 를 사용하여 CSV 파일 읽기
이 단계에서는 pd.read_csv() 함수의 기본 사용법을 익혀 CSV 파일에서 Pandas DataFrame 으로 데이터를 로드하는 방법을 배웁니다.
프로젝트 디렉토리인 ~/project에는 data.csv라는 파일이 있습니다. 해당 내용을 살펴보겠습니다. 파일 시작 부분에는 # 기호로 시작하는 몇 개의 주석 줄이 포함되어 있습니다. read_csv 함수는 comment 매개변수를 사용하여 이러한 줄을 무시하도록 지시할 수 있습니다.
먼저 왼쪽 파일 탐색기에서 main.py 파일을 엽니다. 이 파일에 Python 코드를 작성할 것입니다.
Pandas 를 가져오고 data.csv 파일을 읽기 위해 main.py에 다음 코드를 추가합니다. 결과 DataFrame 을 df라는 변수에 할당한 다음 출력합니다.
import pandas as pd
## '#'으로 시작하는 줄을 주석으로 처리하여 CSV 파일 읽기
df = pd.read_csv('data.csv', comment='#')
## DataFrame 출력
print(df)
이제 스크립트를 실행하려면 WebIDE 에서 터미널을 열고 (Terminal > New Terminal 메뉴 사용 가능) 다음 명령을 실행합니다.
python3 main.py
다음과 같은 출력을 볼 수 있습니다. 이는 CSV 파일의 내용이 구조화된 DataFrame 으로 로드되었음을 보여줍니다.
id name age city
0 1 Alice 25 New York
1 2 Bob 30 Los Angeles
2 3 Charlie Not Available London
3 4 David 35 NaN
4 5 Eve 22 Paris
read_csv 에서 헤더 행 지정
이 단계에서는 read_csv 함수의 header 매개변수를 살펴보겠습니다.
기본적으로 read_csv는 파일에서 주석이 없거나 건너뛴 첫 번째 행을 열 이름을 포함하는 헤더 행으로 가정합니다. data.csv 파일에서 주석 줄을 건너뛴 후 id,name,age,city 줄이 헤더로 올바르게 추론됩니다.
header 매개변수를 사용하면 헤더로 사용할 행을 명시적으로 지정할 수 있습니다. 이 매개변수는 행 인덱스 (0 부터 시작) 를 나타내는 정수를 받습니다. 주석 이후의 첫 번째 데이터 줄이 헤더이므로 해당 인덱스는 0입니다.
main.py 파일을 수정하여 header=0을 명시적으로 설정해 보겠습니다. 이 경우 기본 동작이지만 명시적으로 지정하면 형식이 특이한 파일의 오류를 방지할 수 있습니다.
main.py를 다음 코드로 업데이트하십시오.
import pandas as pd
## 주석 이후 첫 번째 행 (인덱스 0) 을 헤더로 명시적으로 지정
df = pd.read_csv('data.csv', comment='#', header=0)
print(df)
터미널에서 스크립트를 다시 실행합니다.
python3 main.py
이전 단계와 동일한 출력이 표시됩니다. 기본 동작을 확인한 것뿐이기 때문입니다. 이 연습은 코드의 명확성과 견고성을 높이는 데 유용합니다.
id name age city
0 1 Alice 25 New York
1 2 Bob 30 Los Angeles
2 3 Charlie Not Available London
3 4 David 35 N/A
4 5 Eve 22 Paris
na_values 매개변수로 누락된 값 처리
이 단계에서는 누락된 데이터의 사용자 지정 표현을 처리하는 방법을 배웁니다.
이전 단계의 DataFrame 을 보면 age 열에 "Not Available" 값이 있고 city 열에 NaN이 있는 것을 볼 수 있습니다. Pandas 는 빈 문자열, NA 또는 N/A와 같은 일부 일반적인 누락 값 표시자를 자동으로 인식하지만 "Not Available"과 같은 사용자 지정 표시는 인식하지 못합니다. na_values 매개변수를 사용하여 NaN(Not a Number) 으로 해석되어야 하는 문자열 목록을 제공할 수 있습니다. NaN은 Pandas 에서 누락된 데이터를 나타내는 표준 표시자입니다.
na_values 매개변수를 포함하도록 main.py를 수정합니다.
import pandas as pd
## 누락된 값으로 처리할 문자열 목록 정의
missing_values = ["Not Available", "N/A"]
## 사용자 지정 누락 값 지정하여 CSV 읽기
df = pd.read_csv('data.csv', comment='#', na_values=missing_values)
print(df)
이제 스크립트를 실행합니다.
python3 main.py
새로운 출력을 관찰합니다. "Not Available" 문자열이 NaN으로 대체되었습니다.
id name age city
0 1 Alice 25.0 New York
1 2 Bob 30.0 Los Angeles
2 3 Charlie NaN London
3 4 David 35.0 NaN
4 5 Eve 22.0 Paris
NaN 값을 수용하기 위해 age 열의 데이터 유형도 float64로 변경된 것을 확인할 수 있습니다.
head 메서드를 사용하여 첫 행 표시
이 단계에서는 DataFrame 의 처음 몇 행을 검사하는 방법을 배웁니다.
대규모 데이터셋으로 작업할 때 전체 DataFrame 을 출력하는 것은 비효율적이며 화면을 어지럽힐 수 있습니다. .head() 메서드는 데이터의 빠른 미리보기를 얻는 편리한 방법입니다. 기본적으로 첫 5 개 행을 반환합니다.
.head()에 정수를 전달하여 보고 싶은 행 수를 지정할 수도 있습니다. DataFrame 의 처음 3 개 행만 표시해 보겠습니다.
main.py 파일을 다음과 같이 업데이트합니다. 전체 DataFrame 을 출력하는 대신 이제 헤드만 출력합니다.
import pandas as pd
missing_values = ["Not Available", "N/A"]
df = pd.read_csv('data.csv', comment='#', na_values=missing_values)
## DataFrame 의 처음 3 개 행 표시
print(df.head(3))
터미널에서 스크립트를 실행합니다.
python3 main.py
이제 출력은 훨씬 짧아지며 헤더와 처음 세 개의 레코드만 표시됩니다.
id name age city
0 1 Alice 25.0 New York
1 2 Bob 30.0 Los Angeles
2 3 Charlie NaN London
shape 속성을 사용하여 DataFrame 의 shape 확인
이 단계에서는 DataFrame 의 차원을 확인하는 방법을 배웁니다.
행과 열의 수를 아는 것은 데이터 분석에서 기본적인 확인 사항입니다. Pandas DataFrame 에는 행과 열의 수가 포함된 튜플을 반환하는 .shape 속성이 있습니다.
.shape는 메서드가 아닌 속성이므로 접근할 때 괄호 ()를 사용하지 않습니다.
main.py를 수정하여 DataFrame 의 형태를 출력해 보겠습니다.
import pandas as pd
missing_values = ["Not Available", "N/A"]
df = pd.read_csv('data.csv', comment='#', na_values=missing_values)
## DataFrame 의 차원 (행, 열) 가져오기
df_shape = df.shape
print(df_shape)
마지막으로 스크립트를 실행합니다.
python3 main.py
출력은 우리 DataFrame 이 5 개의 행과 4 개의 열을 가지고 있음을 나타내는 튜플이 될 것입니다.
(5, 4)
요약
이 랩을 완료하신 것을 축하드립니다! Pandas 를 사용하여 데이터를 읽고 검사하는 필수 기술을 익혔습니다.
이 랩에서는 다음을 숙달했습니다.
pd.read_csv()를 사용하여 CSV 파일을 DataFrame 으로 읽기.comment매개변수를 사용하여 주석 줄 건너뛰기.header매개변수를 사용하여 헤더 행을 명시적으로 정의하기.na_values매개변수를 사용하여 사용자 지정 누락 값 처리하기..head()메서드를 사용하여 DataFrame 미리보기..shape속성을 사용하여 DataFrame 의 차원 확인하기.
이러한 작업은 거의 모든 데이터 분석 작업의 시작점을 형성하는 기본적인 작업입니다. 이러한 기술을 통해 다양한 데이터 가져오기 문제를 더 잘 처리할 수 있습니다.



