Pandas DataFrame 생성

PandasBeginner
지금 연습하기

소개

Pandas 를 이용한 데이터 조작의 세계에 오신 것을 환영합니다! DataFrame 은 레이블이 지정된 축 (행 및 열) 을 가진 2 차원, 크기 변경 가능하며 잠재적으로 이기종인 테이블 형식 데이터 구조입니다. 이는 현대 데이터 분석에서 가장 일반적으로 사용되는 데이터 구조 중 하나입니다.

이 실습에서는 Pandas DataFrame 을 생성하는 기본적인 메서드를 배우게 됩니다. 간단한 Python dictionary 에서 DataFrame 을 생성하는 것부터 시작하여 열과 인덱스를 사용자 정의하는 방법을 탐색할 것입니다. 모든 작업은 WebIDE 내에서 Python 스크립트를 작성하고 실행하며 수행하게 됩니다.

딕셔너리에서 DataFrame 생성

이 단계에서는 Python 딕셔너리에서 Pandas DataFrame 을 생성하는 가장 일반적인 방법을 배우게 됩니다. 딕셔너리를 사용할 때 키는 열 이름이 되고, 값 (일반적으로 리스트 또는 배열) 은 해당 열의 데이터가 됩니다.

먼저 WebIDE 왼쪽의 파일 탐색기에서 main.py 파일을 엽니다.

이제 main.py 파일에 다음 코드를 추가합니다. 이 코드는 Pandas 라이브러리를 가져오고 학생 데이터 딕셔너리를 정의합니다. 그런 다음 pd.DataFrame()을 사용하여 딕셔너리를 DataFrame 으로 변환하고 결과를 출력합니다.

import pandas as pd

## 딕셔너리 형태의 데이터
student_data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Score': [85, 92, 78]
}

## 딕셔너리로부터 DataFrame 생성
df = pd.DataFrame(student_data)

## DataFrame 출력
print(df)

스크립트를 실행하려면 WebIDE 에서 터미널을 열고 (Terminal -> New Terminal) 다음 명령을 실행합니다. 모든 작업은 ~/project 디렉토리 내에서 수행해야 합니다.

python3 main.py

다음과 같은 출력을 볼 수 있습니다. 이는 딕셔너리 데이터가 0 부터 시작하는 기본 행 인덱스와 함께 깔끔하게 테이블 형식으로 구성된 것을 보여줍니다.

      Name  Score
0    Alice     85
1      Bob     92
2  Charlie     78

DataFrame 에서 열 이름 지정

이 단계에서는 DataFrame 의 열 순서를 제어하는 방법을 배우게 됩니다. 기본적으로 Pandas 는 딕셔너리의 키 순서를 유지하지 않을 수 있습니다. columns 매개변수에 열 이름 목록을 전달하여 열 순서를 명시적으로 정의할 수 있습니다.

main.py 파일을 수정하여 열 순서를 지정해 보겠습니다. 'Name'과 'Score' 열의 순서를 바꾸겠습니다.

main.py 파일을 다음 코드로 업데이트하세요. pd.DataFrame() 함수에 columns 매개변수가 추가된 것을 확인하세요.

import pandas as pd

## 딕셔너리 형태의 데이터
student_data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Score': [85, 92, 78]
}

## DataFrame 생성 및 열 순서 지정
df = pd.DataFrame(student_data, columns=['Score', 'Name'])

## DataFrame 출력
print(df)

이제 터미널에서 스크립트를 다시 실행합니다.

python3 main.py

출력에는 지정한 대로 'Score' 열이 먼저 표시됩니다.

   Score     Name
0     85    Alice
1     92      Bob
2     78  Charlie

DataFrame 에 인덱스 레이블 추가

이 단계에서는 기본 숫자 인덱스 (0, 1, 2, ...) 를 더 의미 있는 레이블로 바꾸는 방법을 배우게 됩니다. 이는 index 매개변수를 사용하여 수행하며, 각 행에 사용자 정의 인덱스를 할당할 수 있습니다.

DataFrame 에 고유한 학생 ID 를 인덱스로 할당해 보겠습니다. main.py 파일을 수정하여 인덱스 레이블 목록을 포함시키세요.

main.py의 코드를 다음과 같이 업데이트하세요.

import pandas as pd

## 딕셔너리 형태의 데이터
student_data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Score': [85, 92, 78]
}

## 사용자 정의 인덱스 레이블 정의
index_labels = ['ID1', 'ID2', 'ID3']

## 사용자 정의 인덱스로 DataFrame 생성
df = pd.DataFrame(student_data, index=index_labels)

## DataFrame 출력
print(df)

터미널에서 스크립트를 실행합니다.

python3 main.py

이제 기본 숫자 인덱스가 사용자 정의 'ID' 레이블로 대체된 것을 볼 수 있습니다.

        Name  Score
ID1    Alice     85
ID2      Bob     92
ID3  Charlie     78

점 표기법을 사용하여 DataFrame 열에 액세스

이 단계에서는 DataFrame 의 단일 열에 접근하는 편리한 방법인 점 표기법 (dot notation) 을 배우게 됩니다. 열의 이름이 유효한 Python 식별자 (공백 없음, 숫자로 시작하지 않음 등) 인 경우, DataFrame 객체의 속성으로 접근할 수 있습니다.

점 표기법을 사용하여 DataFrame 에서 'Name' 열만 선택하고 출력해 보겠습니다.

main.py 파일을 수정하여 Name 열에 접근하고 출력하도록 합니다.

import pandas as pd

## 딕셔너리 형태의 데이터
student_data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Score': [85, 92, 78]
}

## DataFrame 생성
df = pd.DataFrame(student_data)

## 점 표기법을 사용하여 'Name' 열에 접근하고 출력
print(df.Name)

터미널에서 스크립트를 실행합니다.

python3 main.py

출력은 Pandas Series 가 되며, 이는 본질적으로 DataFrame 의 단일 열입니다.

0      Alice
1        Bob
2    Charlie
Name: Name, dtype: object

info 메서드를 사용하여 DataFrame 정보 표시

이 단계에서는 .info() 메서드를 사용하는 방법을 배우게 됩니다. 이 메서드는 각 열의 데이터 유형, null 이 아닌 값의 개수, 메모리 사용량 등을 포함하여 DataFrame 의 간결한 요약을 제공하는 필수적인 함수입니다. 새로운 데이터셋을 탐색할 때 매우 유용한 첫 단계입니다.

학생 DataFrame 에 .info() 메서드를 적용해 보겠습니다.

main.py 파일을 수정하여 이 메서드를 호출하도록 합니다. .info()는 요약을 직접 출력하므로 print() 함수로 감쌀 필요가 없습니다.

import pandas as pd

## 딕셔너리 형태의 데이터
student_data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Score': [85, 92, 78]
}

## DataFrame 생성
df = pd.DataFrame(student_data)

## DataFrame 요약 표시
df.info()

터미널에서 스크립트를 실행합니다.

python3 main.py

출력 결과는 DataFrame 의 구조와 내용에 대한 자세한 개요를 제공합니다.

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 2 columns):
 ##   Column  Non-Null Count  Dtype
---  ------  --------------  -----
 0   Name    3 non-null      object
 1   Score   3 non-null      int64
dtypes: int64(1), object(1)
memory usage: 176.0+ bytes

요약

이 실습을 완료하신 것을 축하드립니다! Pandas DataFrame 을 생성하고 검사하는 기본적인 기술을 익히셨습니다.

이 실습에서는 다음을 숙달하셨습니다.

  • Python 딕셔너리에서 DataFrame 생성하기.
  • columns 매개변수를 사용하여 열 지정 및 재정렬하기.
  • index 매개변수를 사용하여 사용자 지정 행 레이블 할당하기.
  • 편리한 점 표기법 (dot notation) 을 사용하여 특정 열에 접근하기.
  • .info() 메서드를 사용하여 DataFrame 구조의 간결한 요약 얻기.

이러한 기술은 Pandas 를 사용한 모든 데이터 분석 작업의 필수적인 첫 단계입니다. 이제 더 나아가 탐색할 자체 데이터셋을 만드는 데 필요한 준비를 갖추셨습니다.