Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 DataFrame에서 'A' 학점 학생의 이름 출력하는 방법

문제 소개

pandas DataFrame에서 'A' 학점을 받은 학생의 이름만 골라내는 작업은 데이터 분석에서 가장 기본적이면서도 자주 사용되는 필터링 기법입니다. 이 글에서는 불리언 인덱싱(Boolean Indexing)을 활용해 조건에 맞는 행을 추출하고, 그중 원하는 열(Name)만 선택하는 방법을 단계별로 살펴봅니다.


입력

다음과 같은 DataFrame이 있다고 가정합니다.
 Id  Name Grade
0 1 stud1   A
1 2 stud2   B
2 3 stud3   C
3 4 stud4   A
4 5 stud5   A

출력

'A' 학점 학생의 이름 결과는 다음과 같습니다.

0    stud1
3    stud4
4    stud5

해결 방법

이 문제는 아래와 같은 접근 방식으로 해결할 수 있습니다.

  • DataFrame을 정의합니다.

  • DataFrame의 값과 조건('A')을 비교합니다.

df[df['Grade']=='A']
  • 비교 결과를 새로운 DataFrame에 저장한 뒤, 그중 Name 열만 가져옵니다.

예제 코드

아래 예제를 직접 실행해 보면 전체 동작 과정을 더 쉽게 이해할 수 있습니다.

import pandas as pd
data = [[1,'stud1','A'],[2,'stud2','B'],[3,'stud3','C'],[4,'stud4','A'],[5,'stud5','A']]
df = pd.DataFrame(data,columns=('Id','Name','Grade'))
print("DataFrame is\n",df)
print("find the A grade students name\n")
result = df[df['Grade']=='A']
print(result['Name'])

실행 결과

DataFrame is
 Id Name Grade
0 1 stud1  A
1 2 stud2  B
2 3 stud3  C
3 4 stud4  A
4 5 stud5  A
find the A grade students name
0    stud1
3    stud4
4    stud5
Name: Name, dtype: object

코드 설명

핵심은 df[df['Grade']=='A'] 부분입니다. df['Grade']=='A'는 각 행의 Grade 값이 'A'인지 여부를 True/False로 담고 있는 불리언 Series를 반환합니다. 이 Series를 대괄호 연산자 안에 넣으면 True에 해당하는 행만 걸러지며, 최종적으로 result['Name']을 통해 필터링된 결과에서 Name 열만 선택해 학생 이름을 출력하게 됩니다. 이처럼 불리언 인덱싱을 익혀 두면 성적, 나이, 지역 등 다양한 조건의 데이터 필터링에 그대로 응용할 수 있습니다.