이 튜토리얼에서는 Pandas 데이터프레임에서 특정 열의 문자열 값을 대문자로 변환하는 다양한 방법을 알아봅니다. 예를 들어, 이름(Name) 열에 저장된 값들을 모두 대문자로 바꾸는 작업을 실제 코드와 함께 단계별로 살펴보겠습니다.
방법 1: str.upper() 메서드 사용
Pandas Series에서 제공하는 str.upper() 메서드를 사용하면 열 전체의 문자열을 한 번에 대문자로 변환할 수 있습니다. 벡터화 연산으로 처리되기 때문에 가장 간결하고 빠른 방식입니다.
예제 코드
# pandas 패키지 임포트
import pandas as pd
# 데이터프레임에 사용할 데이터
data = {
'Name': ['Hafeez', 'Aslan', 'Kareem'],
'Age': [19, 21, 18],
'Profession': ['Developer', 'Engineer', 'Artist']
}
# 데이터프레임 생성
data_frame = pd.DataFrame(data)
# 변환 전 데이터프레임 출력
print('---------------------Before-------------------')
print(data_frame)
print()
# Name 열의 문자열을 대문자로 변환
data_frame['Name'] = data_frame['Name'].str.upper()
# 변환 후 데이터프레임 출력
print('---------------------After-------------------')
print(data_frame)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
---------------------Before------------------- Name Age Profession 0 Hafeez 19 Developer 1 Aslan 21 Engineer 2 Kareem 18 Artist ---------------------After------------------- Name Age Profession 0 HAFEEZ 19 Developer 1 ASLAN 21 Engineer 2 KAREEM 18 Artist
방법 2: apply() 메서드 사용
데이터프레임의 apply() 메서드에 람다(lambda) 함수를 전달하여 동일한 결과를 얻을 수도 있습니다. 이 방법은 각 요소에 개별적으로 함수를 적용하므로, 더 복잡한 변환 로직이 필요할 때 유용하게 활용됩니다.
예제 코드
# pandas 패키지 임포트
import pandas as pd
# 데이터프레임에 사용할 데이터
data = {
'Name': ['Hafeez', 'Aslan', 'Kareem'],
'Age': [19, 21, 18],
'Profession': ['Developer', 'Engineer', 'Artist']
}
# 데이터프레임 생성
data_frame = pd.DataFrame(data)
# 변환 전 데이터프레임 출력
print('---------------------Before-------------------')
print(data_frame)
print()
# Name 열의 문자열을 대문자로 변환
data_frame['Name'] = data_frame['Name'].apply(lambda name: name.upper())
# 변환 후 데이터프레임 출력
print('---------------------After-------------------')
print(data_frame)실행 결과
실행 결과는 앞선 방법과 완전히 동일합니다.
---------------------Before------------------- Name Age Profession 0 Hafeez 19 Developer 1 Aslan 21 Engineer 2 Kareem 18 Artist ---------------------After------------------- Name Age Profession 0 HAFEEZ 19 Developer 1 ASLAN 21 Engineer 2 KAREEM 18 Artist
마무리
이번 튜토리얼에서는 Pandas 데이터프레임의 특정 열을 대문자로 변환하는 두 가지 방법, 즉 str.upper()와 apply() 메서드를 살펴보았습니다. 일반적인 경우에는 성능이 좋고 코드가 간결한 str.upper()를 사용하는 것이 권장되며, 조건 분기 등 복잡한 처리가 필요하다면 apply()를 활용하면 됩니다. 내용 중 궁금한 점이 있다면 댓글로 남겨주세요.