데이터 분석 기초
03.index
세용용용용
2023. 3. 6. 22:15
3. index¶
데이터에 접근할 수 있는 주소 값
In [21]:
from IPython.core.display import display, HTML
display(HTML("<style>.container {width:90% !important;}</style>"))
In [3]:
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[3]:
{'이름': ['채치수', '정대만', '송태섭', '서태웅', '강백호', '변덕규', '황태산', '윤대협'],
'학교': ['북산고', '북산고', '북산고', '북산고', '북산고', '능남고', '능남고', '능남고'],
'키': [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 [7]:
import pandas as pd
df = pd.DataFrame(data, index = ['1번', '2번', '3번', '4번', '5번', '6번', '7번', '8번'])
df
Out[7]:
| 이름 | 학교 | 키 | 국어 | 영어 | 수학 | 과학 | 사회 | 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# |
In [8]:
df.index #인덱스 값 확인
Out[8]:
Index(['1번', '2번', '3번', '4번', '5번', '6번', '7번', '8번'], dtype='object')
Index 이름 설정¶
In [9]:
df.index.name = '지원번호' #인덱스 이름 설정
df
Out[9]:
| 이름 | 학교 | 키 | 국어 | 영어 | 수학 | 과학 | 사회 | 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 초기화¶
In [10]:
df.reset_index()
Out[10]:
| 지원번호 | 이름 | 학교 | 키 | 국어 | 영어 | 수학 | 과학 | 사회 | 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# |
In [11]:
df.reset_index(drop=True) #원래 쓰던 '지원번호' 인덱스 삭제
Out[11]:
| 이름 | 학교 | 키 | 국어 | 영어 | 수학 | 과학 | 사회 | 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# |
In [12]:
df
Out[12]:
| 이름 | 학교 | 키 | 국어 | 영어 | 수학 | 과학 | 사회 | 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# |
In [13]:
df.reset_index(drop=True, inplace=True) #실제 데이터에 바로 반영
df
Out[13]:
| 이름 | 학교 | 키 | 국어 | 영어 | 수학 | 과학 | 사회 | 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 를 설정
In [14]:
df.set_index('이름')
Out[14]:
| 학교 | 키 | 국어 | 영어 | 수학 | 과학 | 사회 | 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# |
In [15]:
df
Out[15]:
| 이름 | 학교 | 키 | 국어 | 영어 | 수학 | 과학 | 사회 | 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# |
In [16]:
df.set_index('이름', inplace=True)
df
Out[16]:
| 학교 | 키 | 국어 | 영어 | 수학 | 과학 | 사회 | 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를 기준으로 오름차순, 내림차순 정렬
In [19]:
df.sort_index()#인덱스로 오름차순 정렬
Out[19]:
| 학교 | 키 | 국어 | 영어 | 수학 | 과학 | 사회 | 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 |
In [20]:
df.sort_index(ascending=False) #내림차순으로 정렬
Out[20]:
| 학교 | 키 | 국어 | 영어 | 수학 | 과학 | 사회 | SW특기 | |
|---|---|---|---|---|---|---|---|---|
| 이름 | ||||||||
| 황태산 | 능남고 | 188 | 55 | 65 | 45 | 40 | 35 | PYTHON |
| 채치수 | 북산고 | 197 | 90 | 85 | 100 | 95 | 85 | Python |
| 정대만 | 북산고 | 184 | 40 | 35 | 50 | 55 | 25 | Java |
| 윤대협 | 능남고 | 190 | 100 | 85 | 90 | 95 | 95 | C# |
| 송태섭 | 북산고 | 168 | 80 | 75 | 70 | 80 | 75 | Javascript |
| 서태웅 | 북산고 | 187 | 40 | 60 | 70 | 75 | 80 | |
| 변덕규 | 능남고 | 202 | 80 | 100 | 95 | 85 | 80 | C |
| 강백호 | 북산고 | 188 | 15 | 20 | 10 | 35 | 10 |