본문 바로가기

💻프로그래밍/python

판다스(pandas)에서 timedelta를 int로 변환 하는 방법

반응형

📌 timedelta 데이터 타입

timedelta는 두 날짜 또는 시간의 차이가 어느 정도인지 나타낼 때 사용하는 모듈이다. timedelta는 + 나 - 을 사용할 수 있기 때문에 어떤 날짜에 특정 기간 (일, 시, 분, 초)를 더하거나 뺄 수 있다.

 

 

 

➰전체 데이터 프레임 & 해당 columns  확인

먼저 전체 데이터 프레임(위의 경우는 t라고 지정)을 확인한 뒤 '배송기간'이라는 columns의 값만 추출해온다. '배송기간' columns의 값들은 '일수'형태의 값들이며 timedelta 타입의 데이터임을 알 수 있다. 이때 timedelta 형태의 데이터를 Int형태로 변환하려면 어떻게 해야 할까?

 

 

 

➰ 생각 1)

데이터 타입을 다른 형태로 변환하는 가장 기본적인 방법은 str( ), int( ), float( )를 이용하여 괄호 안에 내가 바꾸고 싶은 값을 넣어주면 된다.

TypeError: int() argument must be a string, a bytes-like object or a number, not 'Timedelta'

 

 int( ) 를 이용하여 '배송기간' columns의 값을 int형태로 변환하면 에러가 뜨는 것을 확인할 수 있다. 

 

 

 

➰ 생각 2)

이번에는 astype( ) 을 이용해서 int형으로 변환해보자. 출력 결과를 보면 데이터 타입은 int형으로 변환되었지만, 값들을 확인해보니 내가 원하는 형태가 아니다!

 

 

 

➰ 해결

 

해당 columns('배송기간')의 값들은 '일(days)' 형태의 데이터이다. 따라서 .dt.days 이용해 보면 timedelta 형태의 데이터가 우리가 원하는 형태인 Int형으로 변환되었음을 알 수 있다. 

 

반응형