본문 바로가기

카테고리 없음

Python : Pandas 기본 - DataFrame #1

pandas는 Python에서 데이터 분석과 조작을 위해 널리 사용되는 라이브러리입니다. 특히, DataFrame은 pandas의 핵심 데이터 구조로, 구조화된 데이터를 직관적이고 효율적으로 다룰 수 있게 해줍니다.

 

1. DataFrame의 정의

 

DataFrame은 행(row)과 열(column)로 구성된 2차원 데이터 구조입니다. 이를 테이블 형태로 생각하면 쉽습니다. 각 열은 특정 데이터 유형을 가지며, 행은 레이블로 식별됩니다.

 

주요 특징:

  • 레코드 기반: 각 행은 레코드를 나타냅니다.
  • 열 기반: 각 열은 데이터를 설명하는 속성을 나타냅니다.
  • 레이블 지원: 행과 열 모두 레이블을 지정할 수 있어, 인덱스 및 컬럼명을 통해 데이터를 쉽게 접근 가능합니다.

 

2. DataFrame의 중요성

  • 데이터 조작의 용이성: 복잡한 데이터 변환과 정리를 간단히 수행할 수 있습니다.
  • 다양한 데이터 소스와 통합: CSV, Excel, SQL, JSON 등 다양한 형식의 데이터를 불러오거나 저장할 수 있습니다.
  • 강력한 연산 지원: 데이터 필터링, 그룹화, 정렬 등 여러 기능을 효율적으로 제공합니다.
  • 시각화와 통합: matplotlib 및 seaborn 같은 라이브러리와 쉽게 통합되어 데이터 시각화를 지원합니다.

 

3. DataFrame 정의 방법

 

pandas 라이브러리를 통해 DataFrame을 생성하는 방법은 다양합니다.

(1) 딕셔너리로 생성

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'San Francisco', 'Los Angeles']
}

df = pd.DataFrame(data)
print(df)

#출력
      Name  Age           City
0    Alice   25      New York
1      Bob   30  San Francisco
2  Charlie   35   Los Angeles

 

(2) 리스트로 생성

data = [
    ['Alice', 25, 'New York'],
    ['Bob', 30, 'San Francisco'],
    ['Charlie', 35, 'Los Angeles']
]

# 리스트로 생성시 컬럼명을 추가합니다.
df = pd.DataFrame(data, columns=['Name', 'Age', 'City'])
print(df)

 

(3) CSV 파일에서 로드

df = pd.read_csv('data.csv')

 

(4) SQL 쿼리 결과에서 로드

import sqlite3

conn = sqlite3.connect('example.db')
df = pd.read_sql_query("SELECT * FROM users", conn)

 

결국 테이블 형태의 데이터들은 모두 DataFrame으로 만들 수 있다는 것입니다. 

 

4. DataFrame 사용하기

아래는 DataFrame을 탐색하기 위한 기본적인 메소드들입니다.

 

  • df.head(n): 처음 n개의 행을 반환 (기본값은 5개).
  • df.tail(n): 마지막 n개의 행을 반환.
  • df.info(): DataFrame의 요약 정보 제공.
  • df.describe(): 수치형 데이터에 대한 통계 요약.

예시:

print(df.head())
print(df.info())
print(df.describe())

#출력
  Name  Age  Salary
0    Alice   25   50000
1      Bob   30   60000
2  Charlie   35   70000
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 
 0   Name    3 non-null      object
 1   Age     3 non-null      int64 
 2   Salary  3 non-null      int64 
dtypes: int64(2), object(1)
memory usage: 204.0+ bytes
None
        Age   Salary
count   3.0      3.0
mean   30.0  60000.0
std     5.0  10000.0
min    25.0  50000.0
25%    27.5  55000.0
50%    30.0  60000.0
75%    32.5  65000.0
max    35.0  70000.0

 

다음 블로그에서는 DataFrame의 사용법에 대해서 조금 자세히 살펴보도록 하겠습니다.