[Python] 판다스, 데이터프레임, 객체, 데이터프레임 인덱스 지정, 데이터 프레임 접근 방법/ pandas, series, dataframe, 객체, index

김대현·2024년 7월 15일

판다스의 데이터 프레임

판다스의 데이터 프레임은 시리즈의 연속이라고 볼 수 있다. 즉 2차원 데이터를 다루는 자료구조이다. 여러 개의 시리즈가 모여서 하나의 데이터 프레임을 구성하게 되는 것이다.


데이터 프레임 생성 예제
먼저, 데이터를 준비한다. 슬램덩크 주요 인물 8명의 데이터를 사전 자료구조(딕셔너리)로 만들고 이를 데이터 프레임으로 변환하였다.

data = {
    '이름': ['채치수', '정대만', '송태섭', '서태웅', '강백호', '변덕규', '황태산', '윤대협'],
    '학교': ['북산고', '북산고', '북산고', '북산고', '북산고', '능남고', '능남고', '능남고'],
    '키': [197, 184, 168, 187, 188, 202, 188, 190],
    '국어': [90, 40, 80, 40, 15, 80, 55, 100],
    '영어': [85, 35, 75, 60, 20, 100, 65, 85],
    '수학': [100, 50, 70, 70, 10, 95, 45, 90],
    '과학': [95, 55, 80, 75, 35, 85, 40, 95],
    '사회': [85, 25, 75, 80, 10, 80, 35, 95],
    'SW특기': ['Python', 'Java', 'Javascript', '', '', 'C', 'PYTHON', 'C#']
}

데이터 프레임 생성 : 이제 이 데이터를 판다스 데이터 프레임으로 변환하자

import pandas as pd

# 데이터 프레임 생성
df = pd.DataFrame(data)
print(df)

이렇게 하면 다음과 같은 출력 결과를 얻게 된다::

    이름   학교    키  국어  영어  수학  과학  사회      SW특기
0  채치수  북산고  197   90   85  100   95   85      Python
1  정대만  북산고  184   40   35   50   55   25        Java
2  송태섭  북산고  168   80   75   70   80   75  Javascript
3  서태웅  북산고  187   40   60   70   75   80         
4  강백호  북산고  188   15   20   10   35   10         
5  변덕규  능남고  202   80  100   95   85   80           C
6  황태산  능남고  188   55   65   45   40   35      PYTHON
7  윤대협  능남고  190  100   85   90   95   95          C#

데이터 프레임의 특정 열에 접근

데이터 프레임의 특정 열에 접근하는 방법을 살펴보자.

1. 단일 열 접근

# '이름' 열 데이터 접근
print(df['이름'])

0    채치수
1    정대만
2    송태섭
3    서태웅
4    강백호
5    변덕규
6    황태산
7    윤대협
Name: 이름, dtype: object

2. 다중 열 접근:
여러 열을 선택할 수도 있다. 두 개 이상의 다중 열 또는 컬럼에 접근하여 컬럼을 가져오기 위해서는 df라고 적고 대괄호 안에 대괄호를 하나 더 입력하여 열을 지정하면 두 개 이상의 컬럼을 가져올 수 있다.

# '이름'과 '키' 열 데이터 접근
print(df[['이름', '키']])

    이름    키
0  채치수  197
1  정대만  184
2  송태섭  168
3  서태웅  187
4  강백호  188
5  변덕규  202
6  황태산  188
7  윤대협  190

데이터 프레임의 인덱스 새로 지정

데이터 프레임의 인덱스를 임의로 지정할 수도 있다.

# 인덱스 지정
df = pd.DataFrame(data, index=[1, 2, 3, 4, 5, 6, 7, 8])
print(df)

    이름   학교    키  국어  영어  수학  과학  사회       SW특기
1  채치수  북산고  197   90   85  100   95   85    	Python
2  정대만  북산고  184   40   35   50   55   25         Java
3  송태섭  북산고  168   80   75   70   80   75  J avascript
4  서태웅  북산고  187   40   60   70   75   80          
5  강백호  북산고  188   15   20   10   35   10          
6  변덕규  능남고  202   80  100   95   85   80            C
7  황태산  능남고  188   55   65   45   40   35       PYTHON
8  윤대협  능남고  190  100   85   90   95   95           C#


기존 데이터프레임에서 특정 열 선택하여 새로운 데이터 프레임 만들기

기존 데이터 프레임에서 원하는 열만 선택하여 새로운 데이터 프레임을 만들거나 컬럼의 순서를 변경한 새로운 데이터 프레임을 만들 수도 있다.

1. 특정 열 선택하여 새로운 데이터 프레임 만들기

# 특정 열 선택
df = pd.DataFrame(data, columns=['이름', '학교', '키'])
print(df)

    이름   학교    키
0  채치수  북산고  197
1  정대만  북산고  184
2  송태섭  북산고  168
3  서태웅  북산고  187
4  강백호  북산고  188
5  변덕규  능남고  202
6  황태산  능남고  188
7  윤대협  능남고  190

2. 컬럼의 순서를 변경한 새로운 데이터 프레임을 만들기


# 열 순서 변경
df = pd.DataFrame(data, columns=['이름', '키', '학교'])
print(df)

    이름    키   학교
0  채치수  197  북산고
1  정대만  184  북산고
2  송태섭  168  북산고
3  서태웅  187  북산고
4  강백호  188  북산고
5  변덕규  202  능남고
6  황태산  188  능남고
7  윤대협  190  능남고

데이터프레임에 접근하는 방법 정리

  • 단일 열 접근: df['열이름']

  • 다중 열 접근: df[['열이름1', '열이름2']]

  • 인덱스 지정: pd.DataFrame(data, index=[인덱스리스트])

  • 특정 열 선택 및 순서 변경: pd.DataFrame(data, columns=['열이름1', '열이름2'])


출처: https://www.inflearn.com/course/lecture?courseSlug=%EB%82%98%EB%8F%84%EC%BD%94%EB%94%A9-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D-%EC%8B%9C%EA%B0%81%ED%99%94&unitId=109630&q=742634&category=questionDetail

profile
데이터 분석 스쿨 블로그 입니다.

0개의 댓글