Python/pandas

데이터 분석 및 시각화 Pandas 데이터 분석 라이브러리 03.Index

마게더 2022. 5. 13. 00:45
반응형

3. Index
데이터에 접근할 수 있는 주소 값

import pandas as pd

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#']}
 
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#

df.index #현재 인덱스 값을 리스트로 표현
Index(['1번', '2번', '3번', '4번', '5번', '6번', '7번', '8번'], dtype='object


Index 이름 설정
df.index.name = '지원번호'
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#


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

df.reset_index(drop=True) #원래 쓰던 '지원번호' 인덱스 이름삭제

이름	학교	키	국어	영어	수학	과학	사회	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 #reset이 기존 데이터에 영향을 미치지 않음
이름	학교	키	국어	영어	수학	과학	사회	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#


df.reset_index(drop=True, inplace=True) #실제 데이터 변경
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#

Index 설정
지정한 column으로 Index 설정

df.set_index('이름') # 기존 데이터에 영향을 미치지 않음
	학교	키	국어	영어	수학	과학	사회	SW특기
이름								
채치수	북산고	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#

df # set_index() 기본 값은 기존 데이터에 영향을 미치지 않음
이름	학교	키	국어	영어	수학	과학	사회	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.set_index('이름', inplace=True) #inplace=True 값을 통해 기존 데이터 변경
df
	학교	키	국어	영어	수학	과학	사회	SW특기
이름								
채치수	북산고	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#

Index 정렬
index를 기준으로 오름차순, 내림차순 정렬

df.sort_index() #인덱스를 기준으로 오름차순 정렬
	학교	키	국어	영어	수학	과학	사회	SW특기
이름								
강백호	북산고	188	15	20	10	35	10	
변덕규	능남고	202	80	100	95	85	80	C
서태웅	북산고	187	40	60	70	75	80	
송태섭	북산고	168	80	75	70	80	75	Javascript
윤대협	능남고	190	100	85	90	95	95	C#
정대만	북산고	184	40	35	50	55	25	Java
채치수	북산고	197	90	85	100	95	85	Python
황태산	능남고	188	55	65	45	40	35	PYTHON


df.sort_index(ascending=False) #인덱스를 기준으로 내림차순 정렬 
df
	학교	키	국어	영어	수학	과학	사회	SW특기
이름								
채치수	북산고	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#

 

반응형