Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Pandas DataFrame에서 특정 열의 첫 글자를 대문자로 변환하는 방법

Pandas(판다스) 데이터프레임은 행과 열로 이루어진 테이블 형태의 자료구조입니다. 데이터를 정리하다 보면 특정 열에 들어 있는 문자열 값들의 첫 글자를 대문자로 바꿔야 하는 경우가 종종 있습니다. 예를 들어 요일이나 이름처럼 고유명사 성격의 데이터는 첫 글자가 대문자여야 가독성이 좋아지죠. 이번 글에서는 str.capitalize() 함수를 활용해 이 작업을 손쉽게 처리하는 방법을 알아보겠습니다.

데이터프레임 생성하기

먼저 실습에 사용할 데이터프레임을 만들어 보겠습니다. 아래 예제에서는 'Day'와 'Subject'라는 두 개의 열을 가진 간단한 데이터프레임을 생성합니다.

예제 코드

import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({'Day': ['mon', 'tue', 'wed', 'thu', 'fri'], 'Subject': ['Math', 'english', 'science', 'music', 'games']})
print(df)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

     Day   Subject
0    mon      Math
1    tue  english
2    wed  science
3    thu    music
4    fri    games

capitalize() 함수 적용하기

이제 str.capitalize() 함수를 'Day' 열에 적용해 보겠습니다. 이 함수는 각 문자열의 첫 글자만 대문자로 변환하고 나머지 글자는 소문자로 유지해 줍니다.

예제 코드

import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({'Day': ['mon', 'tue', 'wed', 'thu', 'fri'], 'Subject': ['Math', 'english', 'science', 'music', 'games']})
# Day 열의 첫 글자를 대문자로 변환
df['Day'] = df['Day'].str.capitalize()
print(df)

실행 결과

위 코드를 실행하면 'Day' 열의 모든 요일 이름이 첫 글자만 대문자로 변경된 것을 확인할 수 있습니다.

     Day   Subject
0    Mon      Math
1    Tue  english
2    Wed  science
3    Thu    music
4    Fri    games

참고: 다른 변환 방법들

상황에 따라 capitalize() 외에도 다양한 문자열 함수를 활용할 수 있습니다.

  • str.title(): 각 단어의 첫 글자를 모두 대문자로 변환합니다. 예를 들어 'new york' → 'New York'처럼 여러 단어로 된 값에 유용합니다.
  • str.upper() / str.lower(): 문자열 전체를 대문자 또는 소문자로 일괄 변환합니다.
  • apply() 함수: df['Day'].apply(lambda x: x.capitalize())처럼 람다 함수와 함께 사용하면 더 복잡한 사용자 지정 변환도 가능합니다.

이처럼 Pandas의 벡터화된 문자열 연산(.str 접근자)을 활용하면 반복문 없이도 데이터프레임 전체 열을 빠르고 효율적으로 처리할 수 있습니다.