Pandas DataFrame 생성

PandasBeginner
지금 연습하기

소개

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

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

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 89%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

딕셔너리에서 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 를 사용한 모든 데이터 분석 작업의 필수적인 첫 단계입니다. 이제 더 나아가 탐색할 자체 데이터셋을 만드는 데 필요한 준비를 갖추셨습니다.