Python/pandas

데이터 분석 및 시각화 Pandas 데이터 분석 라이브러리 02.DataFrame

마게더 2022. 5. 12. 00:20
반응형

2.DataFame
2차원 데이터 (Series들의 모음)

Data 준비
사전 (dict) 자료구조를 통해 생성 ex) 슬램덩크 주요 인물 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[key 값]
 ['채치수', '정대만', '송태섭', '서태웅', '강백호', '변덕규', '황태산', '윤대협']
 
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['이름'] #df[Column 값]
0    채치수
1    정대만
2    송태섭
3    서태웅
4    강백호
5    변덕규
6    황태산
7    윤대협
Name: 이름, dtype: object

df[['이름','키']] #df[[Column 값1, Column 값2]] 
컬럼 값을 2개 이상 가져올땐 대괄호를 2번 넣는다.
	이름	키
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 지정)
데이터 중에서 원하는 컬럼 값만 가져온다.
df = pd.DataFrame(data, columns=['이름', '학교', '키'])
df
	이름	학교	키
0	채치수	북산고	197
1	정대만	북산고	184
2	송태섭	북산고	168
3	서태웅	북산고	187
4	강백호	북산고	188
5	변덕규	능남고	202
6	황태산	능남고	188
7	윤대협	능남고	190

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