소개
Pandas 데이터 선택 실습에 오신 것을 환영합니다! Pandas 는 Python 에서 데이터 조작 및 분석을 위한 강력한 라이브러리입니다. 데이터 분석에서 가장 기본적인 작업 중 하나는 데이터의 특정 하위 집합을 선택하는 것입니다. 단일 열, 몇 개의 특정 행 또는 데이터셋의 복잡한 슬라이스를 검사해야 하든, Pandas 는 작업을 완료하기 위한 다양하고 유연하며 효율적인 방법을 제공합니다.
이 실습에서는 학생 정보 샘플 데이터셋을 사용합니다. 다음을 배우게 됩니다:
- 대괄호 표기법을 사용하여 단일 및 다중 열 선택하기.
.loc접근자를 사용하여 레이블별로 행 선택하기..iloc접근자를 사용하여 정수 위치별로 행 선택하기.- 행 및 열 선택을 결합하여 데이터의 정확한 슬라이스 추출하기.
이 실습이 끝나면 Pandas 의 핵심 데이터 선택 기법에 대한 확실한 이해를 갖게 될 것이며, 이는 모든 데이터 관련 작업에 필수적입니다.
대괄호 표기법을 사용하여 단일 열 선택
이 단계에서는 Pandas DataFrame 에서 단일 열을 선택하는 가장 일반적인 방법을 배우게 됩니다. 이는 Python 사전에서 값에 액세스하는 방식과 유사하게 대괄호 표기법 []을 사용하여 수행됩니다.
먼저 students.csv 파일에서 데이터를 DataFrame 으로 로드해야 합니다. 그런 다음 대괄호 안에 문자열로 열 이름을 전달하여 열을 선택할 수 있습니다.
왼쪽 파일 탐색기에서 main.py 파일을 열고 다음 코드를 추가하십시오.
import pandas as pd
## CSV 파일을 DataFrame 으로 로드
df = pd.read_csv('students.csv')
## 'name' 열 선택
name_column = df['name']
## 선택된 열 출력
print(name_column)
이제 스크립트를 실행해 보겠습니다. WebIDE 에서 터미널을 열고 다음 명령을 실행하십시오.
python3 main.py
출력으로 'name' 열의 모든 이름이 포함된 Pandas Series 객체를 볼 수 있습니다.
0 Alice
1 Bob
2 Charlie
3 David
4 Eve
Name: name, dtype: object
보시다시피 단일 열을 선택하면 본질적으로 레이블이 지정된 1 차원 배열인 Series가 반환됩니다.
리스트를 사용하여 여러 열 선택
이 단계에서는 이전 기법을 확장하여 여러 열을 한 번에 선택하는 방법을 배웁니다. 이를 위해 단일 문자열을 전달하는 대신 선택 대괄호 안에 열 이름 목록을 전달합니다. 이중 대괄호 [[]] 사용에 유의하십시오. 바깥쪽 대괄호는 선택 자체를 위한 것이고, 안쪽 대괄호는 열 목록을 생성합니다.
main.py 파일을 수정하여 name과 score 열을 모두 선택해 보겠습니다.
main.py를 다음 코드로 업데이트하십시오.
import pandas as pd
## CSV 파일을 DataFrame 으로 로드
df = pd.read_csv('students.csv')
## 'name' 및 'score' 열 선택
subset = df[['name', 'score']]
## 결과 부분 DataFrame 출력
print(subset)
이제 터미널에서 스크립트를 다시 실행하십시오.
python3 main.py
출력은 지정한 열만 포함하는 새 DataFrame 이 됩니다.
name score
0 Alice 85
1 Bob 92
2 Charlie 95
3 David 88
4 Eve 90
단일 열을 선택하면 Series가 반환되는 것과 달리, 여러 열을 선택하면 새 DataFrame이 반환됩니다.
loc 를 사용하여 레이블로 행 선택
이 단계에서는 .loc 접근자를 사용하여 레이블을 기반으로 데이터를 선택하는 방법을 배우게 됩니다. .loc 인덱서는 주로 레이블 기반으로 작동하므로, 선택을 위해 인덱스 이름 (또는 레이블) 을 사용합니다. 기본적으로 인덱스 열을 지정하지 않고 CSV 를 로드하면 Pandas 는 0 부터 시작하는 기본 정수 인덱스를 할당합니다. 이 정수는 행의 레이블 역할을 합니다.
.loc를 사용하여 인덱스 레이블이 2인 DataFrame 의 세 번째 행을 선택해 보겠습니다.
main.py 파일을 다음 코드로 업데이트하십시오.
import pandas as pd
## CSV 파일을 DataFrame 으로 로드
df = pd.read_csv('students.csv')
## 인덱스 레이블 2 인 행 선택
charlie_data = df.loc[2]
## 선택된 행 출력
print(charlie_data)
터미널에서 스크립트를 실행하십시오.
python3 main.py
출력은 인덱스 레이블 2인 행의 모든 데이터를 포함하는 Series가 됩니다.
name Charlie
age 21
major Mathematics
score 95
Name: 2, dtype: object
이는 "Charlie" 학생의 데이터를 보여줍니다. .loc를 사용하는 것은 레이블을 알고 있을 때 행에 액세스하는 강력한 방법입니다.
iloc 를 사용하여 정수 위치로 행 선택
이 단계에서는 또 다른 선택 방법인 .iloc를 살펴보겠습니다. .iloc 인덱서는 주로 정수 위치 기반입니다. 파이썬 리스트 슬라이싱과 마찬가지로 정수 인덱스를 사용하여 요소에 액세스합니다. 이는 레이블을 사용하는 .loc와 다릅니다. 기본 인덱스 레이블도 정수이지만, 정수가 아닌 레이블이 있는 경우 이 구분이 중요해집니다.
.iloc를 사용하여 DataFrame 의 첫 번째 행, 즉 정수 위치 0에 있는 행을 선택해 보겠습니다.
main.py 파일을 다음 코드로 업데이트하십시오.
import pandas as pd
## CSV 파일을 DataFrame 으로 로드
df = pd.read_csv('students.csv')
## 첫 번째 행 (정수 위치 0) 선택
first_row = df.iloc[0]
## 선택된 행 출력
print(first_row)
터미널에서 스크립트를 실행하십시오.
python3 main.py
출력은 첫 번째 학생인 "Alice"의 데이터를 포함하는 Series가 됩니다.
name Alice
age 20
major Physics
score 85
Name: 0, dtype: object
핵심 차이점을 기억하십시오: .loc는 레이블용이고, .iloc는 정수 위치용입니다.
loc 를 사용하여 행과 열 슬라이싱
이 마지막 단계에서는 배운 내용을 결합하여 더 강력한 선택을 수행합니다. .loc와 .iloc 모두 df.loc[row_selector, column_selector] 구문을 사용하여 행과 열을 동시에 선택할 수 있습니다.
.loc를 사용하여 행 슬라이스와 열 슬라이스를 선택할 것입니다. .loc의 주요 특징은 레이블로 슬라이싱할 때 (예: 1:3), 끝 레이블 (3) 이 포함된다는 것입니다.
인덱스 레이블 1부터 3까지의 행과 name부터 major까지의 열을 선택해 보겠습니다.
main.py 파일을 다음 코드로 업데이트하십시오.
import pandas as pd
## CSV 파일을 DataFrame 으로 로드
df = pd.read_csv('students.csv')
## 인덱스 레이블 1 부터 3 까지 (포함) 의 행과
## 'name'부터 'major'까지 (포함) 의 열 선택
data_slice = df.loc[1:3, 'name':'major']
## 결과 슬라이스 출력
print(data_slice)
터미널에서 스크립트를 실행하십시오.
python3 main.py
출력은 원본 데이터의 특정 "슬라이스"인 새 DataFrame 입니다.
name age major
1 Bob 22 Computer Science
2 Charlie 21 Mathematics
3 David 23 Engineering
이 기법은 데이터셋의 특정 영역을 분석을 위해 분리하는 데 매우 유용합니다.
요약
실습을 완료하신 것을 축하드립니다! Pandas 에서 데이터를 선택하는 기본적인 방법을 성공적으로 익히셨습니다.
이번 실습에서는 다음을 연습했습니다.
- 대괄호 표기법
df['column']을 사용하여 단일 열을 선택했으며, 이는Series를 반환합니다. - 대괄호 표기법
df[['col1', 'col2']]에 리스트를 사용하여 여러 열을 선택했으며, 이는DataFrame을 반환합니다. .loc를 사용하여 레이블로 행을 선택했으며, 이는 레이블 기반 인덱싱에 강력합니다..iloc를 사용하여 정수 위치로 행을 선택했으며, 이는 표준 파이썬 슬라이싱 규칙을 따릅니다..loc와 행 및 열 선택자를 결합하여 데이터의 특정 2 차원 슬라이스를 추출했습니다.
이러한 선택 기법을 마스터하는 것은 데이터 분석 및 조작을 위한 Pandas 숙련도를 높이는 데 중요한 첫걸음입니다. 이제 DataFrame 의 어떤 부분이든 자신 있게 액세스하여 검사, 분석 또는 수정할 수 있습니다.



