가끔 숫자 앞에 0을 채우고 싶을 때가 있음
그럴때는 문자열로 변환 후, zfill()을 사용하면 된다.
숫자형에서 적용시 오류가 나므로 문자로 변환 후 사용할 것.
zfill()의 괄호 안에는 출력하고자 하는 문자열의 총 길이를 입력하면 된다.
예를 들어 아래와 같이 2 앞에 0을 채워 '02'로 만들고 싶으면 zfill(2), '002'을 만들고 싶으면 zfill(3)
x = 2
print(str(x).zfill(2))
# 02
print(str(x).zfill(3))
# 002
아래에는 숫자와 문자의 자릿수를 늘려가며 앞에 0을 채워보았다.
괄호 안에 입력된 숫자보다 원래 값의 자릿수가 길면 아무런 변화없이 출력된다.
x = 6
for i in range(2,6):
print(str(x).zfill(i))
# 06
# 006
# 0006
# 00006
x = 'Hi'
for i in range(2,6):
print(x.zfill(i))
# Hi
# 0Hi
# 00Hi
# 000Hi
DataFrame에서도 아래처럼 사용가능하다.
import pandas as pd
# 문자형 컬럼
df = pd.DataFrame({'test':['0','12','6','d','hi','home','32','5','375']})
for i in range(2, 5):
df['test'+str(i)] = df["test"].str.zfill(i)
df
# test test2 test3 test4
#0 0 00 000 0000
#1 12 12 012 0012
#2 6 06 006 0006
#3 d 0d 00d 000d
#4 hi hi 0hi 00hi
#5 home home home home
#6 32 32 032 0032
#7 5 05 005 0005
#8 375 375 375 0375
import pandas as pd
# 숫자형 컬럼
df = pd.DataFrame({'test':[0,3,174,32,3,675,53,4,9,7]})
for i in range(2, 5):
df['test'+str(i)] = df["test"].astype('str').str.zfill(i)
df
# test test2 test3 test4
#0 0 00 000 0000
#1 3 03 003 0003
#2 174 174 174 0174
#3 32 32 032 0032
#4 3 03 003 0003
#5 675 675 675 0675
#6 53 53 053 0053
#7 4 04 004 0004
#8 9 09 009 0009
#9 7 07 007 0007
반응형
'Study > Python' 카테고리의 다른 글
[Python] 반복문에서 변수 선언하는 법 (0) | 2021.11.17 |
---|---|
[Python] Jupyter notebook 셀 가로 폭 늘리기 (0) | 2021.02.18 |
[Python] 숫자 천 단위 구분 기호 (콤마) 출력하기 (0) | 2021.01.26 |
[python] 폴더 안에 있는 파일들 한번에 불러오기 (2) | 2020.10.12 |