반응형
숫자 데이터 자리수 맞추어 표시하기(앞에 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 이런식으로 사용하는 경우가 많다.
반응형
'self.python' 카테고리의 다른 글
[python] seaborn으로 HeatMap 그리기 - 1 (0) | 2022.11.06 |
---|---|
[python] 데이터 프레임 전처리 - replace 이용하기 (0) | 2022.07.03 |
[python] 데이터 프레임 합치기 - concat, append, join (0) | 2022.06.21 |
[python] 데이터프레임 데이터 타입 바꾸기 (0) | 2022.06.20 |
[python] matplot 그래프 그리기 유용한 꿀팁! - (2) (0) | 2022.06.13 |
댓글