1. Index의 이름을 설정하는 법
- df.index.name
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.name을 하면 쉽게 index의 이름을 설정할 수 있습니다.
- df.rename_axis()
print(df.rename_axis('학급 번호'))
를 통해 일시적으로 Index 이름을 바꿀 수 있습니다.
이때 주의해야할 점이 일시적으로 바뀌는 것이기 때문에 저장을 하시고 싶으시면, df에 다시 저장을 해줘야합니다.
2. Index 이름 제거
- df.reset_index()
df.reset_index()를 하시면 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에는 영향을 주지 않습니다.
따라서 따로 df에 저장을 해줘야합니다.
사실 따로 저장을 안 해주고 바로 업데이트 하는 방법이 있는데 이건 뒤에서 설명 드리겠습니다.
- df.reset_index(drop=True)
이렇게 drop=True을 써주시면, 초기화를 하는게 아니라 기존에 있던 칸을 없애줍니다.
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_index(inplace=True)
inplace=True를 써주면 데이터가 바로 변경되며 업데이트가 됩니다. 그래서 따로 저장하지 않아줘도 됩니다.
앞의 rename_axis에도 inplace=True를 작성해주면, 바로 업데이트 해줍니다.
따라서 Index를 없애고 바로 업데이트 하고 싶다. 그러면은
df.reset_index(drop= True, inplace= True)
이렇게 작성해주시면 됩니다.
3. Index 정렬
- Index 설정
df.set_index('이름', 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가 '이름'으로 설정이 됩니다. inplace를 썼으니 바로 업데이트도 일어납니다.
- 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)
학교 키 국어 영어 수학 과학 사회 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
이렇게 ascending= False로 바꿔주시면 내림차순으로 복사본이 출력됩니다.
이때도 inplace=True는 적용됩니다.
4. 요약
인덱스의 이름을 저장하고 싶다면 df.name.index = 'name' 이런 식으로 해주시거나, df.rename_axis()를 해주시면 됩니다.
index를 초기화 하고 싶다면 reset_index를 하시면 됩니다.
이때 파라미터로 drop=True를 하시면 기존의 index는 버리고, inplace=True를 하면 복사본을 보내는게 아니라 바로 업데이트가 이루어집니다.
sort_index를 사용하면 index를 기준으로 정렬합니다. 이때 파라미터로 ascending = False를 하면 내림차순으로 정렬합니다.
감사합니다.
지적 환영입니다.
참고 : 나도코딩
'Python Library > Pandas' 카테고리의 다른 글
[Pandas - Python] Pandas 라이브러리와 데이터의 선택(loc, iloc) (0) | 2022.02.07 |
---|---|
[Pandas - Python] Pandas 라이브러리와 데이터 확인 및 선택(기본) (0) | 2022.02.05 |
[Pandas - Python] Pandas 라이브러리와 파일 저장 및 열기(excel, csv, txt) (0) | 2022.02.05 |
[Pandas] Pandas 라이브러리와 DataFrame (0) | 2022.02.04 |
[Pandas] Pandas 라이브러리와 Series (0) | 2022.02.04 |