Post

Pandas 데이터 분석: Series와 DataFrame의 생성과 기본 연산

Series와 DataFrame을 생성하는 방법과 이를 활용한 기본 연산

Pandas의 핵심 데이터 구조인 SeriesDataFrame은 데이터를 효과적으로 관리하고 조작하는 데 사용됩니다. 이번 글에서는 Series와 DataFrame을 생성하는 방법과 이를 활용한 기본 연산을 알아보겠습니다.

1. Pandas Series

Series는 1차원 데이터 구조로, 인덱스와 값을 함께 저장합니다. Python의 리스트나 NumPy 배열과 유사하지만, 인덱스를 추가로 관리할 수 있다는 점에서 차별화됩니다.

1) Series 생성

1. 기본 생성

1
2
3
4
5
6
7
8
9
10
import pandas as pd

data = [10, 20, 30]
series = pd.Series(data)
print(series)
# 출력:
# 0    10
# 1    20
# 2    30
# dtype: int64

2. 인덱스 지정

1
2
3
4
5
6
7
8
9
data = [10, 20, 30]
index = ["A", "B", "C"]
series = pd.Series(data, index=index)
print(series)
# 출력:
# A    10
# B    20
# C    30
# dtype: int64

3. 딕셔너리로 생성

1
2
3
4
5
6
7
8
data = {"A": 10, "B": 20, "C": 30}
series = pd.Series(data)
print(series)
# 출력:
# A    10
# B    20
# C    30
# dtype: int64
2) Series 기본 연산

1. 값 접근 및 변경

1
2
3
print(series["A"])  # 출력: 10
series["A"] = 50
print(series["A"])  # 출력: 50

2. 연산

  • Series 간의 연산은 인덱스 기준으로 수행됩니다.
1
2
3
4
5
6
7
8
s1 = pd.Series([10, 20, 30], index=["A", "B", "C"])
s2 = pd.Series([5, 15, 25], index=["A", "B", "C"])
print(s1 + s2)
# 출력:
# A    15
# B    35
# C    55
# dtype: int64

2. Pandas DataFrame

DataFrame은 2차원 데이터 구조로, 행과 열로 구성된 표 형태의 데이터를 저장합니다.

1) DataFrame 생성

1. 기본 생성

1
2
3
4
5
6
7
8
data = [[1, "Alice", 25], [2, "Bob", 30], [3, "Charlie", 35]]
df = pd.DataFrame(data, columns=["ID", "Name", "Age"])
print(df)
# 출력:
#    ID     Name  Age
# 0   1    Alice   25
# 1   2      Bob   30
# 2   3  Charlie   35

2. 딕셔너리로 생성

1
2
3
4
5
6
7
8
9
10
11
12
data = {
    "ID": [1, 2, 3],
    "Name": ["Alice", "Bob", "Charlie"],
    "Age": [25, 30, 35]
}
df = pd.DataFrame(data)
print(df)
# 출력:
#    ID     Name  Age
# 0   1    Alice   25
# 1   2      Bob   30
# 2   3  Charlie   35

3. 리스트와 딕셔너리 혼합

1
2
3
4
5
6
7
8
data = [{"ID": 1, "Name": "Alice", "Age": 25},
        {"ID": 2, "Name": "Bob", "Age": 30}]
df = pd.DataFrame(data)
print(df)
# 출력:
#    ID   Name  Age
# 0   1  Alice   25
# 1   2    Bob   30
2) DataFrame 기본 연산

1. 데이터 접근

  • 열(column) 접근
    1
    2
    3
    
    print(df["Name"])  # 출력: 0    Alice
                     #       1      Bob
                     # Name: Name, dtype: object
    
  • 행(row) 접근
    1
    2
    3
    4
    
    print(df.loc[0])   # 출력: ID         1
                     #        Name    Alice
                     #        Age       25
                     # Name: 0, dtype: object
    

2. 데이터 추가

1
2
3
4
5
6
df["Job"] = ["Engineer", "Doctor"]
print(df)
# 출력:
#    ID   Name  Age       Job
# 0   1  Alice   25  Engineer
# 1   2    Bob   30    Doctor

3. 데이터 삭제

1
2
3
4
5
6
df = df.drop("Job", axis=1)  # 열 삭제
print(df)
# 출력:
#    ID   Name  Age
# 0   1  Alice   25
# 1   2    Bob   30

4. 데이터 연산

1
2
3
4
5
6
df["Age"] = df["Age"] + 5
print(df)
# 출력:
#    ID   Name  Age
# 0   1  Alice   30
# 1   2    Bob   35

3. Series와 DataFrame의 차이점

특징SeriesDataFrame
차원1차원2차원
구성 요소값(Value)와 인덱스(Index)행(Row)과 열(Column)
사용 사례단일 열 데이터여러 열 데이터를 다룰 때 사용

정리

  • Series는 1차원 데이터 구조로, 데이터와 인덱스를 저장합니다.
  • DataFrame은 2차원 데이터 구조로, 행과 열로 구성된 데이터를 처리할 수 있습니다.
  • Series와 DataFrame의 다양한 연산을 통해 데이터를 효율적으로 관리하고 조작할 수 있습니다.

다음 글 예고:
Pandas로 데이터를 파일에서 불러오고 저장하는 방법을 알아보는 “데이터 로드와 저장”에 대해 다뤄보겠습니다!

This post is licensed under CC BY 4.0 by the author.