본문 바로가기
Programming/python

[Python] Pandas DataFrame 개념정리

by 그렉그의 2023. 3. 23.

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