2 분 소요

2.DataFrame

2차원 데이터(Series들의 모임)

Data 준비

사전 (dict) 자료구조를 통해 생성

예) 슬램덩크 주요 인물 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#']
}
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#']}
data['이름']
['채치수', '정대만', '송태섭', '서태웅', '강백호', '변덕규', '황태산', '윤대협']
data['키']
[197, 184, 168, 187, 188, 202, 188, 190]

DataFrame 객체 생성

import pandas as pd
df = pd.DataFrame(data)
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#

데이터 접근

df['이름']
0    채치수
1    정대만
2    송태섭
3    서태웅
4    강백호
5    변덕규
6    황태산
7    윤대협
Name: 이름, dtype: object
df['키']
0    197
1    184
2    168
3    187
4    188
5    202
6    188
7    190
Name: 키, dtype: int64
df[['이름','키']]
이름
0 채치수 197
1 정대만 184
2 송태섭 168
3 서태웅 187
4 강백호 188
5 변덕규 202
6 황태산 188
7 윤대협 190

DataFrame 객체 생성 (Index 지정)

df = pd.DataFrame(data, index=['1번','2번','3번','4번','5번','6번','7번','8번'])
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 Javascript
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#

DataFrame 객체 생성 (Column 지정)

data 중에서 원하는 column만 선택하거나, 순서 변경 가능

df = pd.DataFrame(data, columns=['이름','학교','키'])
df
이름 학교
0 채치수 북산고 197
1 정대만 북산고 184
2 송태섭 북산고 168
3 서태웅 북산고 187
4 강백호 북산고 188
5 변덕규 능남고 202
6 황태산 능남고 188
7 윤대협 능남고 190

댓글남기기