Pandas에서 특정 열 이름 바꾸기
Pandas에서 가장 일반적으로 사용되는 방법은 rename()
메서드입니다. 딕셔너리를 사용하여 기존 열 이름과 새 열 이름을 매핑하여 열 이름을 변경할 수 있습니다.
import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
# 특정 열 이름 변경
df.rename(columns={'A': '새로운 이름'}, inplace=True)
# 결과 확인
print(df)
columns 속성 사용하기
columns
속성을 사용하여 직접 열 이름을 리스트로 지정할 수도 있습니다. 이 방법은 데이터프레임의 모든 열 이름을 변경하는 경우에 유용합니다.
import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
# 모든 열 이름 변경
df.columns = ['새로운 이름1', '새로운 이름2', '새로운 이름3']
# 결과 확인
print(df)
reindex() 메서드 사용하기
reindex()
메서드를 사용하여 새로운 열 이름을 지정하면서 데이터프레임을 재정렬할 수 있습니다.
import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
# 특정 열 이름 변경 및 재정렬
df = df.reindex(columns=['새로운 이름', 'B', 'C'])
# 결과 확인
print(df)
lambda 함수 사용하기
rename()
메서드와 함께 lambda 함수를 사용하여 열 이름을 변경할 때 더 복잡한 논리를 적용할 수 있습니다.
import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
# 열 이름을 모두 대문자로 변경
df.rename(columns=lambda x: x.upper(), inplace=True)
# 결과 확인
print(df)
참고:
inplace=True
매개변수를 사용하면 원본 데이터프레임을 변경하고, 생략하면 새로운 데이터프레임을 반환합니다.axis=1
또는axis='columns'
매개변수를 사용하여 열 이름 변경임을 명시할 수 있습니다.
주의:
- 열 이름을 변경하면 인덱스와의 연결이 끊어질 수 있으므로 주의해야 합니다.
- 동일한 이름을 가진 열이 여러 개 있는 경우
rename()
메서드에서 오류가 발생할 수 있습니다.
예제 코드: 특정 열 이름 바꾸기
이 예제에서는 rename()
메서드를 사용하여 'A' 열 이름을 '새로운 이름'으로 변경합니다.
import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
# 특정 열 이름 변경
df.rename(columns={'A': '새로운 이름'}, inplace=True)
# 결과 확인
print(df)
출력:
새로운 이름 B C
0 1 4 7
1 2 5 8
2 3 6 9
이 예제에서는 columns
속성을 사용하여 모든 열 이름을 '새로운 이름1', '새로운 이름2', '새로운 이름3'으로 변경합니다.
import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
# 모든 열 이름 변경
df.columns = ['새로운 이름1', '새로운 이름2', '새로운 이름3']
# 결과 확인
print(df)
새로운 이름1 새로운 이름2 새로운 이름3
0 1 4 7
1 2 5 8
2 3 6 9
import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
# 특정 열 이름 변경 및 재정렬
df = df.reindex(columns=['새로운 이름', 'B', 'C'])
# 결과 확인
print(df)
새로운 이름 B C
0 1 4 7
1 2 5 8
2 3 6 9
- 위의 예제 코드는 기본적인 사용법을 보여주는 예시이며, 실제 상황에 따라 다양하게 변형하여 사용할 수 있습니다.
- Pandas에서 데이터프레임을 조작하는 방법에 대한 자세한 내용은 Pandas 공식 문서를 참고하십시오.
Pandas에서 특정 열 이름 바꾸기: 대체 방법
하지만, 상황에 따라 더 유용할 수 있는 몇 가지 대체 방법도 있습니다.
axis 매개변수 사용하기
rename()
메서드를 사용할 때 axis
매개변수를 명시하면 행 이름을 변경할지 열 이름을 변경할지 명확하게 지정할 수 있습니다. 기본값은 axis=0
으로 행 이름을 변경하는 것을 의미하지만, axis=1
또는 axis='columns'
로 설정하면 열 이름을 변경하도록 합니다.
import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
# 특정 열 이름 변경 (axis 명시)
df.rename(columns={'A': '새로운 이름'}, axis=1, inplace=True)
# 결과 확인
print(df)
errors 매개변수 사용하기
rename()
메서드를 사용할 때 errors
매개변수를 사용하여 동일한 이름을 가진 열이 존재할 경우 어떻게 처리할지 지정할 수 있습니다. 기본값은 'raise'
이며, 동일한 이름을 가진 열이 존재하면 오류를 발생시킵니다. 하지만, 'ignore'
로 설정하면 동일한 이름을 가진 열을 무시하고, 'replace'
로 설정하면 기존 열을 덮어쓰게 됩니다.
import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({'A': [1, 2, 3], 'A': [4, 5, 6], 'C': [7, 8, 9]})
# 특정 열 이름 변경 (오류 무시)
df.rename(columns={'A': '새로운 이름'}, errors='ignore', inplace=True)
# 결과 확인
print(df)
str.replace() 메서드 사용하기
str.replace()
메서드를 사용하여 열 이름의 일부 문자열을 다른 문자열로 치환하는 방법도 있습니다. 이 방법은 특정 패턴을 가진 열 이름을 일괄적으로 변경하는 데 유용합니다.
import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({'A_data': [1, 2, 3], 'B_data': [4, 5, 6], 'C_data': [7, 8, 9]})
# 특정 패턴을 가진 열 이름 변경
df.columns = df.columns.str.replace('_data', '', regex=True)
# 결과 확인
print(df)
A B C
0 1 4 7
1 2 5 8
2 3 6 9
zip() 함수 사용하기
zip()
함수와 함께 rename()
메서드를 사용하여 기존 열 이름과 새 열 이름을 리스트 또는 튜플로 지정할 수 있습니다.
import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
# 특정 열 이름 변경 (zip 사용)
old_names = ['A', 'B', 'C']
new_names = ['새로운 이름1', '새로운 이름2', '새로운 이름3']
df.rename(columns=dict(zip(old_names, new_names)), inplace=True)
# 결과 확인
print(df)
새로운 이름1 새로운 이름2 새로운 이름3
0 1 4 7
1 2 5 8
2 3 6 9
python pandas dataframe