팬다스 데이터프레임에서 인덱스 재설정 방법
인덱스 재설정은 reset_index()
함수를 사용하여 수행됩니다. 이 함수는 기존 인덱스를 제거하고 새 열로 변환한 다음 데이터프레임에 추가합니다.
다음은 reset_index()
함수를 사용하는 방법에 대한 간단한 예입니다.
import pandas as pd
# 데이터 생성
data = {'번호': [1, 2, 3], '이름': ['철수', '영희', '민수'], '점수': [90, 80, 70]}
df = pd.DataFrame(data)
# 인덱스 재설정
df_reset = df.reset_index()
# 결과 출력
print(df_reset)
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
index 번호 이름 점수
0 0 1 철수 90
1 1 2 영희 80
2 2 3 민수 70
위 예에서는 기존 인덱스가 index
라는 새 열로 변환되었습니다.
reset_index()
함수에는 다음과 같은 옵션도 있습니다.
inplace
: 기존 데이터프레임을 수정할지 여부를 지정합니다. 기본값은False
이며 새 데이터프레임을 반환합니다.True
로 설정하면 기존 데이터프레임이 수정됩니다.name
: 새 인덱스 열의 이름을 지정합니다. 기본값은'index'
입니다.drop
: 기존 인덱스를 완전히 삭제할지 여부를 지정합니다. 기본값은False
입니다.True
로 설정하면 기존 인덱스가 삭제됩니다.
다음은 inplace
및 name
옵션을 사용하는 방법의 예입니다.
# 인덱스 재설정 및 기존 데이터프레임 수정
df.reset_index(inplace=True)
# 새 인덱스 열 이름 변경
df.index.name = '순서'
# 결과 출력
print(df)
순서 번호 이름 점수
0 0 1 철수 90
1 1 2 영희 80
2 2 3 민수 70
import pandas as pd
# 데이터 생성
data = {'번호': [1, 2, 3], '이름': ['철수', '영희', '민수'], '점수': [90, 80, 70]}
df = pd.DataFrame(data)
# 기존 인덱스 출력
print(df)
# 인덱스 재설정
df_reset = df.reset_index()
# 결과 출력
print(df_reset)
# 인덱스 재설정 및 기존 데이터프레임 수정
df.reset_index(inplace=True)
# 새 인덱스 열 이름 변경
df.index.name = '순서'
# 결과 출력
print(df)
# 특정 열을 인덱스로 설정
df_set_index = df_reset.set_index('번호')
# 결과 출력
print(df_set_index)
번호 이름 점수
0 1 철수 90
1 2 영희 80
2 3 민수 70
index 번호 이름 점수
0 0 1 철수 90
1 1 2 영희 80
2 2 3 민수 70
이름 점수
철수 90
영희 80
민수 70
이 코드에서는 다음과 같은 작업을 수행합니다.
data
딕셔너리를 사용하여번호
,이름
,점수
열을 포함하는 데이터프레임을 만듭니다.df
데이터프레임을 출력합니다.reset_index()
함수를 사용하여 인덱스를 재설정하고 결과를df_reset
데이터프레임에 저장합니다.inplace=True
매개변수를 사용하여reset_index()
함수를 호출하여 기존df
데이터프레임을 수정합니다.index.name
속성을 사용하여 새 인덱스 열의 이름을 "순서"로 변경합니다.set_index()
함수를 사용하여 "번호" 열을df_reset
데이터프레임의 새 인덱스로 설정합니다.- 결과를
df_set_index
데이터프레임에 저장합니다.
이 예제는 다양한 방법으로 인덱스를 재설정하고 조작하는 방법을 보여줍니다.
판다스 데이터프레임에서 인덱스 재설정을 위한 대체 방법
loc 및 iloc 속성 사용
loc
및 iloc
속성을 사용하여 특정 행 또는 열을 기반으로 새 인덱스를 만들 수 있습니다.
다음은 loc
속성을 사용하는 방법의 예입니다.
import pandas as pd
# 데이터 생성
data = {'번호': [1, 2, 3], '이름': ['철수', '영희', '민수'], '점수': [90, 80, 70]}
df = pd.DataFrame(data)
# '이름' 열을 기반으로 새 인덱스 설정
df_reset = df.set_index('이름')
# 결과 출력
print(df_reset)
번호 점수
이름
철수 1 90
영희 2 80
민수 3 70
iloc
속성을 사용하는 방법은 다음과 같습니다.
# '번호' 열을 기반으로 새 인덱스 설정
df_reset = df.iloc[:, :2].set_index('번호')
# 결과 출력
print(df_reset)
이름 점수
번호
1 철수 90
2 영희 80
3 민수 70
rename_axis() 함수 사용
rename_axis()
함수를 사용하여 기존 인덱스의 이름을 변경할 수 있습니다.
다음은 rename_axis()
함수를 사용하는 방법의 예입니다.
# 인덱스 이름 변경
df.rename_axis(name='순서', axis=0)
# 결과 출력
print(df)
순서 번호 이름 점수
0 1 1 철수 90
1 2 2 영희 80
2 3 3 민수 70
열 삭제
인덱스로 사용하지 않으려는 열을 삭제하면 새 인덱스가 생성될 수 있습니다.
다음은 열을 삭제하는 방법의 예입니다.
# '번호' 열 삭제
del df['번호']
# 결과 출력
print(df)
이름 점수
0 철수 90
1 영희 80
2 민수 70
python indexing pandas