본문 바로가기
self.python

[python] 숫자 데이터 자리수 맞추어 표시하기(앞에 0 채워주기) - zfill()

by 톤토니 2022. 6. 27.
반응형

zfill

숫자 데이터 자리수 맞추어 표시하기(앞에 0 채워주기) - zfill()

 

 

데이터 프레임에 있는 숫자 데이터에 zfill() 함수를 적용하여 자리수를 맞춰 줄 수 있다.

 

예를 들어 [19, 392, 1205] 이런 데이터가 있다고 할 때 zfill()를 잘 활용하여 [0019, 0392, 1205] 로 만들어 줄 수 있다.

원하는 자리수에 따라 써줄 수 있어서 [00019, 00392, 01205] 와 같이 바꾸는것도 가능하다.

 

 

0. 데이터 프레임 준비

import numpy as np
import pandas as pd

score = {'Year' : ['2016', '2017', '2018', '2019', '2020', '2021', '2022'],
            'Mary': [90, 68, 70, 80, 92, 68, 78],
            'Kate': [90, 68, 70, 80, 92, 68, 78],
            'Mark': [39, 59, 60, 73, 84, 87, 92],
            'Maxi': [83, 92, 71, 56, 79, 93, 85]}

df = pd.DataFrame(score)
df

 

임의의 성적 데이터를 만들어 보았다.

 

여기서 Mary의 점수를 Year과 맞추어 4자리로 만드는데 앞에 0을 넣어서 만들어본다고 하자.

 

 

1. 함수 적용

df['Mary'] = df['Mary'].apply(lambda x : str(x).zfill(4))
df

 

Mary의 점수 데이터가 4자리로 잘 바뀐것을 볼 수 있다.

lambda 함수를 이용하여 Mary의 각 점수를 string type으로 변환 후 zfill(4) 로 4자리로 변환해 주었다.

 

df.dtypes

 

앞에 0을 넣어서 자리수를 맞춰 주어야 하다 보니 데이터 타입이 object로 변한 것을 확인할 수 있었다.

 

 

 

 

df['Kate'] = df['Kate'].apply(lambda x : str(x).zfill(6))
df

 

6자리로 맞추어 주는 경우도 zfill 안에 원하는 자리수로만 바꾸어 주면 된다.

 

 

2. 총 정리

import numpy as np
import pandas as pd

score = {'Year' : ['2016', '2017', '2018', '2019', '2020', '2021', '2022'],
            'Mary': [90, 68, 70, 80, 92, 68, 78],
            'Kate': [90, 68, 70, 80, 92, 68, 78],
            'Mark': [39, 59, 60, 73, 84, 87, 92],
            'Maxi': [83, 92, 71, 56, 79, 93, 85]}

df = pd.DataFrame(score)

df['Mary'] = df['Mary'].apply(lambda x : str(x).zfill(4))
df['Kate'] = df['Kate'].apply(lambda x : str(x).zfill(6))

df

 

 

 

이 데이터프레임의 경우에는 자리수를 맞춰주는 게 아무 의미 없지만...

필요한 경우에 맞춰 쓸 수 있다면 유용하게 사용할 수 있을 것 같다.

 

날짜만 하더라도 월 데이터를 사용해야 할 때 보통 자리수를 맞춰주어야 하기 때문에

01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12 이런식으로 사용하는 경우가 많다.

 

 

 

 

 

반응형

댓글