AI & 파이썬

파이썬(python) / Pandas Dataframe에서 Datetime, Timestamp Type의 컬럼을 str Type으로 바꾸기(Timestamp to str) - 아과노트

아과노트 2023. 2. 26. 09:00
728x90
반응형

부제:  df['column'] = df['column'].astype('str') / df = df.astype({'colimn':type})

안녕하세요, 아과입니다.

 

오늘은 데이터 프레임(Dataframe)에서 Datetime이나 Timestamp 형식으로 읽어온 것을 String으로 바꾸는 것을 해보겠습니다.

파이썬 로고
파이썬 로고

 

오늘의 글은 다음순서로 진행됩니다.

  1. example.xls 읽어오기
  2. 읽어온 Dataframe의 자료형태 확인해 보기 : df.dtypes
  3. datetime 혹은 timestamp 타입을 string으로 바꾸기: astype
  4. 변경된 타입 확인 : df.dtypes

 

 

예제파일은 다음과 같습니다. 

example.xlsx
0.36MB

이 파일은 생명보험협회의 변액보험 내 펀드현황을 엑셀다운로드한 파일입니다.

 

https://pub.insure.or.kr/

 

생명보험협회 공시실

총칙 “개인정보”란 살아있는 개인에 관한 정보로서 성명, 주민등록번호 및 영상 등을 통하여 개인을 알아볼 수 있는 정보 (해당 정보만으로는 특정 개인을 알아볼 수 없더라도 다른 정보와 결

pub.insure.or.kr

 

위의 링크에서 파일을 다운로드하면 오류가 생기는데 먼저 파일수정을 해야 합니다.

파일 수정하는 방법은 이전 글을 참고해 주세요

 

2023.02.21 - [파이썬] - 파이썬(python) / pandas / read_excel로 손상된 엑셀 파일 읽는 방법(XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b...) - 아과노트

 

파이썬(python) / pandas / read_excel로 손상된 엑셀 파일 읽는 방법(XLRDError: Unsupported format, or corrupt file:

부제: 파이썬에서 엑셀 xls 파일을 엑셀 xlsx로 변환하기 먼저 파이썬으로 엑셀파일을 읽는 가장 대표적인 방법은 아래와 같습니다. 1. 파이썬으로 excel(xlsx) 파일 읽기 아래 코드처럼 읽으면 바로

alphalok.tistory.com

 

파이썬에서 pandas로 엑셀 파일을 읽어 오다 보면 날짜형식을 기본으로 Timestamp로 읽어오게 됩니다.

 

하지만 이것을 DB에 그대로 넣게되면 문제가 발생해서 날짜형식을 String으로 변환하는 작업이 필요하게 됩니다.

 

그럴 때 유용하게 쓰기 위해 Timestamp를 String 형식으로 바꾸는 작업을 해보도록 하겠습니다.

 

1. example.xls 읽어오기

다음의 코드로 엑셀파일을 빠르게 읽어오겠습니다.

import pandas as pd
df = pd.read_excel("example.xlsx", engine='openpyxl')
print(df)

이렇게 하면 example.xlsx파일의 값들을 dataframe으로 df라는 변수에 담아 줍니다.

 

2. 읽어온 Dataframe의 자료형태 확인해 보기 : df.dtypes

먼저 데이터의 큰 그림을 그려보고 가겠습니다.

칼럼들의 데이터타입을 확인하기 위해서는 dtypes를 사용합니다.

여기서는 df.dtypes를 사용하면 됩니다.

df.dtypes

결과는 다음과 같습니다.

컬럼타입
컬럼타입

보면 설정일이 datetime64라는 것을 알 수 있습니다.

 

3. datetime 혹은 timestamp 타입을 string으로 바꾸기 : astype

 

datetime 혹은 timestamp 타입을 string으로 바꾸는 방법은 2가지가 있습니다.

1) df['column'] = df['column'].astype('str')

2) df = df.astype({'colimn':type})

 

여러 개의 칼럼을 동시에 수정할 때는 2) df = df.astype({'colimn':type})을 사용하시는 것이 훨씬 간편합니다.

 

Dataframe의 datetime, timestamp의 문자열(string) 변환은
위의 두 개 중 마음에 드는 것을 선택해서 사용하세요
-아과노트-

위의 예제에서는 다음과 같이 수정하면 됩니다.

df['설정일'] = df['설정일'].astype('str')
df = df.astype({'설정일':'str'})

 

4. 변경된 타입 확인 : df.dtypes

 

이제 타입이 변경된 것을 확인해 보겠습니다.

다시 한번 dtypes를 호출할게요.

 

df.dtypes

그러면 이제는 설정일이 object로 바뀐 것을 확인할 수 있습니다.

 

변경된 컬럼타입
변경된 컬럼타입

좀 더 정확하게 확인하려면 다음과 같이 확인도 가능합니다.

 

type(df['설정일'][0])

최종확인
최종확인

이렇게 확인하셨으면 정확하게 datetime이나 timestamp가 string으로 변경된 것입니다.

오늘도 고생하셨습니다.

728x90
반응형