본문 바로가기
IT/파이썬

파이썬 엑셀 데이터 불러올 때 숫자 0 안 사라지게 하는 법

by 깡타의 컴맹인생 2023. 3. 30.
반응형


위와 같은 엑셀 데이터가 있다고 하자. pandas 라이브러리를 활용해서 excel 파일의 데이터를 불러오고 데이터 프레임을 생성한다. 그런데 '001', '002'와 같이 숫자 0이 가장 앞에 적혀있는 데이터 같은 경우에는 숫자 0을 삭제한 나머지 숫자만 데이터 프레임에 입력된다.

1
2
3
4
5
import pandas as pd
 
= pd.read_excel('230330.xlsx')
 
a
cs

엑셀을 데이터 프레임으로 불러오는 함수 read_excel을 사용한 결과는 위와 같다. 엑셀에서 데이터의 형식을 텍스트로 설정해 놓았더라도 숫자로 인식하여 앞의 0을 모두 삭제하고 입력한다.

방법은 없을까 하고 판다스 공식 문서에서 read_excel이라는 함수에 대해 찾아보면 위와 같은 정보를 찾을 수 있다. dtype=None이라고 적혀있다. 데이터 타입을 별도로 지정하지 않으면 None으로 속성값을 가져간다는 것이다.

dtype 속성에 대한 내용을 살펴보면 위와 같다. 엑셀에 있는 모든 데이터들에 대하여 타입 변경을 시도할 수 있고 열마다 사용자가 원하는 데이터 타입을 지정할 수도 있다. 이를 응용해 보자.

1
2
3
4
5
import pandas as pd
 
= pd.read_excel('230330.xlsx', dtype = {'01' : int'001' : str'0001' : int'00001' : float})
 
a
cs

각각의 열별로 다른 데이터 타입을 지정해 봤다. int로 설정할 경우에는 각 셀에 적혀있던 숫자 0이 생략된 것을 확인할 수 있다. float도 마찬가지다. 다만 str(문자열)로 변경한 경우에는 0이 사라지지 않고 그대로 출력된 것을 확인할 수 있다.

1
2
3
4
5
import pandas as pd
 
= pd.read_excel('230330.xlsx', dtype = "str")
 
a
cs

모든 데이터의 형식을 str(문자열)로 변경하고 싶다면 위와 같이 입력하면 된다.

반응형