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

Python에서 문자열 앞에 0(선행 제로) 추가하는 방법

Python에서는 다양한 데이터 요소의 문자열 앞에 0을 붙여야 하는 경우가 종종 있습니다. 데이터를 보기 좋게 정렬하거나 일정한 형식으로 표현하기 위해서일 수도 있고, 고정 길이 값이 필요한 계산이나 시스템 입력값으로 활용하기 위해서일 수도 있습니다. 이번 글에서는 문자열에 선행 0(leading zeros)을 추가하는 대표적인 두 가지 방법을 소개합니다.

1. format() 함수 사용하기

format() 함수를 활용하면 원하는 자릿수만큼 0을 손쉽게 채울 수 있습니다. 아래 예제에서는 pandas DataFrame의 특정 열에 포맷 함수를 적용하여 각 문자열의 전체 길이를 10자리로 맞추고, 부족한 만큼 앞에 0을 채웁니다. apply()와 lambda를 함께 사용하면 열의 모든 값에 함수를 반복적으로 적용할 수 있습니다.

예제 코드

import pandas as pd
string = {'Column' : ['HOPE','FOR','THE','BEST']}
dataframe=pd.DataFrame(string)
print("원본 데이터프레임:")
print(dataframe)
dataframe['Column']=dataframe['Column'].apply(lambda i: '{0:0>10}'.format(i))
print("\n선행 0 추가 후:")
print(dataframe)

실행 결과

원본 데이터프레임:
     Column
0      HOPE
1       FOR
2       THE
3      BEST

선행 0 추가 후:
        Column
0   000000HOPE
1   0000000FOR
2   0000000THE
3   000000BEST

포맷 지정자 {0:0>10}에서 10은 최종 문자열의 전체 길이를, 0>은 왼쪽 방향(앞쪽)에 0을 채우라는 의미입니다. 숫자를 변경하면 원하는 자릿수로 유연하게 조절할 수 있습니다.

2. rjust() 메서드 사용하기

rjust(right justify) 메서드는 문자열을 오른쪽으로 정렬하고, 지정한 채움 문자로 남는 공간을 채워줍니다. 이 방식의 장점은 추가할 0의 개수를 동적으로 계산할 수 있다는 점입니다. 아래 예제에서는 기존 문자열 길이에 원하는 개수(i)를 더해 목표 길이를 만든 뒤, 빈 공간을 '0'으로 채웁니다.

예제 코드

val = '98.6 is normal body temperature'
print("주어진 문자열:\n " + str(val))
# 추가할 0의 개수
i = 3
result = val.rjust(i + len(val), '0')
print("선행 0을 추가한 문자열:\n" + str(result))

실행 결과

주어진 문자열:
98.6 is normal body temperature
선행 0을 추가한 문자열:
00098.6 is normal body temperature

마무리

두 방법 모두 문자열 앞에 0을 추가하는 데 효과적입니다. DataFrame처럼 여러 값을 한 번에 처리해야 한다면 format()apply() 조합이 편리하고, 단일 문자열에 대해 동적으로 자릿수를 조절하고 싶다면 rjust()가 더 직관적입니다. 상황에 맞게 선택하여 사용하면 됩니다.