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
Out[2]:
{'이름': ['채치수', '정대만', '송태섭', '서태웅', '강백호', '변덕규', '황태산', '윤대협'],
'학교': ['북산고', '북산고', '북산고', '북산고', '북산고', '능남고', '능남고', '능남고'],
'키': [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#']}
In [3]:
data['이름']
Out[3]:
['채치수', '정대만', '송태섭', '서태웅', '강백호', '변덕규', '황태산', '윤대협']
DataFram 객체 생성
In [5]:
import pandas as pd
df= pd.DataFrame(data)
In [6]:
df
Out[6]:
이름학교키국어영어수학과학사회SW특기01234567
채치수 | 북산고 | 197 | 90 | 85 | 100 | 95 | 85 | Python |
정대만 | 북산고 | 184 | 40 | 35 | 50 | 55 | 25 | Java |
송태섭 | 북산고 | 168 | 80 | 75 | 70 | 80 | 75 | Javascript |
서태웅 | 북산고 | 187 | 40 | 60 | 70 | 75 | 80 | |
강백호 | 북산고 | 188 | 15 | 20 | 10 | 35 | 10 | |
변덕규 | 능남고 | 202 | 80 | 100 | 95 | 85 | 80 | C |
황태산 | 능남고 | 188 | 55 | 65 | 45 | 40 | 35 | PYTHON |
윤대협 | 능남고 | 190 | 100 | 85 | 90 | 95 | 95 | C# |
Data 접근
In [7]:
df["이름"]
Out[7]:
0 채치수
1 정대만
2 송태섭
3 서태웅
4 강백호
5 변덕규
6 황태산
7 윤대협
Name: 이름, dtype: object
In [10]:
df[["이름","키"]]
# 두개 이상 가져올때는 리스트로 감싼 값을 df안에 넣어주면 됨
Out[10]:
이름키01234567
채치수 | 197 |
정대만 | 184 |
송태섭 | 168 |
서태웅 | 187 |
강백호 | 188 |
변덕규 | 202 |
황태산 | 188 |
윤대협 | 190 |
DataFrame 객체 생성(Index 지정)
In [12]:
df= pd.DataFrame(data, index=["1번","2번","3번","4번","5번","6번","7번","8번"])
df
Out[12]:
이름학교키국어영어수학과학사회SW특기1번2번3번4번5번6번7번8번
채치수 | 북산고 | 197 | 90 | 85 | 100 | 95 | 85 | Python |
정대만 | 북산고 | 184 | 40 | 35 | 50 | 55 | 25 | Java |
송태섭 | 북산고 | 168 | 80 | 75 | 70 | 80 | 75 | Javascript |
서태웅 | 북산고 | 187 | 40 | 60 | 70 | 75 | 80 | |
강백호 | 북산고 | 188 | 15 | 20 | 10 | 35 | 10 | |
변덕규 | 능남고 | 202 | 80 | 100 | 95 | 85 | 80 | C |
황태산 | 능남고 | 188 | 55 | 65 | 45 | 40 | 35 | PYTHON |
윤대협 | 능남고 | 190 | 100 | 85 | 90 | 95 | 95 | C# |
DataFrame 객체 생성(Column 지정)
Data 중에서 원하는 컬럼 선정 및 순서 변경 가능
In [15]:
df= pd.DataFrame(data, columns=["이름","학교","키"])
df
Out[15]:
이름학교키01234567
채치수 | 북산고 | 197 |
정대만 | 북산고 | 184 |
송태섭 | 북산고 | 168 |
서태웅 | 북산고 | 187 |
강백호 | 북산고 | 188 |
변덕규 | 능남고 | 202 |
황태산 | 능남고 | 188 |
윤대협 | 능남고 | 190 |
In [16]:
df= pd.DataFrame(data, columns=["이름","키","학교"])
df
Out[16]:
이름키학교01234567
채치수 | 197 | 북산고 |
정대만 | 184 | 북산고 |
송태섭 | 168 | 북산고 |
서태웅 | 187 | 북산고 |
강백호 | 188 | 북산고 |
변덕규 | 202 | 능남고 |
황태산 | 188 | 능남고 |
윤대협 | 190 | 능남고 |
'Programming > python' 카테고리의 다른 글
[Python] Pandas 파일 저장 개념정리 (0) | 2023.03.23 |
---|---|
[Python] Pandas Index 개념정리 (0) | 2023.03.23 |
[python] Pandas Series 기본 개념 정리 (0) | 2023.03.23 |
[PY] pandas 기본 (0) | 2023.03.23 |
[python] 클래스 연습 (0) | 2023.03.11 |