Python에서는 다양한 데이터 요소에 문자열 형태로 0을 덧붙여야 하는 경우가 종종 있습니다. 이는 데이터를 보기 좋게 포맷하거나 표현하기 위한 목적일 수도 있고, 해당 값들이 계산의 입력값으로 사용되기 때문일 수도 있습니다. 이 글에서는 문자열에 선행 0을 추가하는 대표적인 방법들을 소개합니다.
format() 함수 활용하기
첫 번째 방법은 format() 함수를 사용하는 것입니다. DataFrame을 만든 뒤, 0을 추가하고자 하는 열(column)에 포맷 함수를 적용합니다. 이때 lambda를 함께 사용하면 각 요소에 함수를 반복적으로 적용할 수 있어 편리합니다.
아래 예제에서는 '{0:0>10}' 포맷 지정자를 사용하여 전체 길이가 10이 되도록 왼쪽에 0을 채웁니다.
예제 코드
import pandas as pd
string = {'Column' : ['HOPE','FOR','THE','BEST']}
dataframe=pd.DataFrame(string)
print("given column is ")
print(dataframe)
dataframe['Column']=dataframe['Column'].apply(lambda i: '{0:0>10}'.format(i))
print("\n leading zeros is")
print(dataframe)실행 결과
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
given column is Column 0 HOPE 1 FOR 2 THE 3 BEST leading zeros is Column 0 000000HOPE 1 0000000FOR 2 0000000THE 3 000000BEST
rjust() 메서드 활용하기
두 번째 방법은 rjust()(오른쪽 정렬) 메서드입니다. 이 함수는 인자로 전달된 값을 지정한 너비만큼 오른쪽으로 정렬하며, 남는 공간을 원하는 문자로 채울 수 있습니다. 아래 예제에서는 세 개의 0을 값 앞에 추가합니다.
특히 이 방법은 추가할 0의 개수를 동적으로 조절할 수 있다는 장점이 있습니다. 문자열 길이에 원하는 0의 개수를 더해 너비를 계산하면 됩니다.
예제 코드
val = '98.6 is normal body temperature'
print("The given string is :\n " + str(val))
#Number of zeros to be added
i = 3
result = val.rjust(i + len(val), '0')
print("adding leading zeros to the string is :\n" + str(result))실행 결과
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
The given string is : 98.6 is normal body temperature adding leading zeros to the string is : 00098.6 is normal body temperature
마무리
정리하면, pandas DataFrame의 여러 값에 일괄적으로 선행 0을 붙일 때는 format()과 apply() 조합이 유용하고, 단일 문자열에 동적으로 0을 채우고 싶다면 rjust() 메서드가 간편한 선택입니다. 상황에 맞는 방법을 골라 데이터 포맷과 가독성을 한층 높여 보세요.