[판다스 입문/인덱스 활용]
목차
2. 행 인덱스 재배열
3. 행 인덱스 초기화
특정 열을 행 인덱스로 설정
DataFrame 객체.set_index(['열 이름'] 또는 '열 이름')
set_index() 메소드를 사용하여 데이터프레임의 특정 열을 행 인덱스로 설정헌다.
원본 데이터를 바꾸지 않고 새로운 데이터프레임 객체를 반환하는 점에 유의.
# 예제 1-16
import pandas as pd
exam_data = {
'이름': ['서준', '우현', '인아'],
'수학': [90, 80, 70],
'영어': [98, 89, 95],
'음악': [85, 95, 100],
'체육': [100, 90, 90]
}
df = pd.DataFrame(exam_data)
print(df)
print('\n')
ndf = df.set_index(['이름'])
print(ndf)
print('\n')
ndf2 = df.set_index('음악')
print(ndf2)
print('\n')
ndf3 = df.set_index(['수학', '음악'])
print(ndf3)
ndf3은 특이한 경우로 2개의 열을 행 인덱스로 지정한 경우이다.
이런 경우를 멀티인덱스라고 한다.
set_index() 메소드를 사용하여 행 인덱스를 새로 지정하면 기존 행 인덱스는 삭제된다.
행 인덱스 재배열
DataFrame 객체.reindex(새로운 인덱스 배열)
reindex() 메소드를 사용하면 데이터프레임의 행 인덱스를 새로운 배열로 재지정할 수 있다.
기존 객체를 변경하지 않고 새로운 데이터프레임 객체를 반환한다.
# 예제 1-17
import pandas as pd
dict_data = {
'c0': [1, 2, 3],
'c1': [4, 5, 6],
'c2': [7, 8, 9],
'c3': [10, 11, 12],
'c4': [13, 14, 15]
}
df = pd.DataFrame(dict_data, index=['r0', 'r1', 'r2'])
print(df)
print('\n')
new_index = ['r0', 'r1', 'r2', 'r3', 'r4']
ndf = df.reindex(new_index)
print(ndf)
print('\n')
new_index = ['r0', 'r1', 'r2', 'r3', 'r4']
ndf2 = df.reindex(new_index, fill_value=0)
print(ndf2)
기존 데이터프레임에 존재하지 않는 행 인덱스가 새롭게 추가되는 경우, 그 행의 데이터값은 NaN값이 입력된다.
이럴 경우, reindex()의 fill_value 옵션에 원하는 값을 입력하면 그 값으로 채워진다.
행 인덱스 초기화
DataFrame 객체.reset_index()
행 인덱스를 정수형 위치 인덱스로 초기화한다.
이때 기존 행 인덱스는 열로 이동한다.
새로운 데이터프레임 객체를 반환한다.
# 예제 1-18
import pandas as pd
dict_data = {
'c0': [1, 2, 3],
'c1': [4, 5, 6],
'c2': [7, 8, 9],
'c3': [10, 11, 12],
'c4': [13, 14, 15]
}
df = pd.DataFrame(dict_data, index=['r0', 'r1', 'r2'])
print(df)
print('\n')
ndf = df.reset_index()
print(ndf)
행 인덱스를 기준으로 데이터프레임 정렬
DataFrame 객체.sort_index()
ascending 옵션을 사용하여 오름차순 또는 내림차순을 설정할 수 있다.
새롭게 정렬된 데이터프레임을 반환한다.
# 예제 1-19
import pandas as pd
dict_data = {
'c0': [1, 2, 3],
'c1': [4, 5, 6],
'c2': [7, 8, 9],
'c3': [10, 11, 12],
'c4': [13, 14, 15]
}
df = pd.DataFrame(dict_data, index=['r0', 'r1', 'r2'])
print(df)
print('\n')
ndf = df.sort_index(ascending=False)
print(ndf)
오름차순 정렬은 ascending=True 옵션을, 내림차순 정렬은 ascending=False 옵션을 사용한다.
특정 열을 기준으로도 데이터프레임을 정렬할 수 있다.
DataFrame 객체.sort_values()
이 경우 sort_values() 메소드를 사용한다.
마찬가지로 새롭게 정렬된 데이터프레임 객체를 반환한다.
# 예제 1-20
import pandas as pd
dict_data = {
'c0': [1, 2, 3],
'c1': [4, 5, 6],
'c2': [7, 8, 9],
'c3': [10, 11, 12],
'c4': [13, 14, 15]
}
df = pd.DataFrame(dict_data, index=['r0', 'r1', 'r2'])
print(df)
print('\n')
ndf = df.sort_values(by='c1', ascending=False)
print(ndf)
![]() |
|
'공부 > 파이썬 머신러닝 판다스 데이터 분석' 카테고리의 다른 글
[판다스 입문/산술연산] 시리즈 연산 (0) | 2022.10.18 |
---|---|
[판다스 입문/산술연산] (0) | 2022.10.18 |
[판다스 입문/판다스 자료구조] 데이터프레임 (1) | 2022.10.14 |
[판다스 입문/판다스 자료구조] 시리즈 (0) | 2022.10.12 |
[판다스 입문/판다스 자료구조] (0) | 2022.10.12 |