파이썬에서 숫자 0으로 시작하는 데이터를 가진 csv 또는 txt 파일을 열어야 하는 경우가 많았다. 특히 고객번호나 핸드폰 번호가 그럴 수 있다.
예를 들어 고객 번호가 5자리인 경우, 파이썬에서 read_csv나 read_txt로 불러오면 0이 사라져있다.
customer_number |
---|
00001 |
00002 |
00003 |
00004 |
00005 |
customer_number |
---|
1 |
2 |
3 |
4 |
5 |
메모장으로 열면 앞에 0000이 다 있는건 맞으니까 이게 에러라고 볼 수는 없지만... 그러나 다른 데이터와 join할 경우, 원하는 목적대로 되지 않을 수 있다.
test1은 customer_number를 object(string) 타입으로 인식하고 있고,
test2는customer_number를 int 타입으로 인식하고 있다.
test = pd.read_table('./test.txt',sep=',', dtype={x : 'str' for x in ['customer_number']})
컬럼의 타입을 명시해주고 열면 된다! 대괄호 안에 여러 개의 컬럼명을 추가할 수 있다.
추가적으로, 데이터에 header가 없는 경우는 컬럼명을 0으로 대신 주면 된다.
test = pd.read_table('./test.txt',sep=',', header=None, dtype={x : 'str' for x in [0]})