시간 값이 ISO 8601 형태로 표현 되어 있을때,

chaechae·2023년 8월 8일
0

youtube 데이터를 받고, 영상길이에 따라 반응(조회수,좋아요,댓글)의 차이가 있는지 궁금했습니다. 하지만 api 에서 받은 영상의 길이 'duration' 컬럼의 경우 PT10M11S 와 같은 형태로 되어있었는데요. 통계적으로 차이가 있는지 확인하기 위해선 이를 seconds 시간 형태로 바꿔야합니다!

ISO 8601은 날짜와 시간을 표현하는 국제 표준으로서, 다양한 형태의 날짜와 시간 표현을 통합하고 표준화한 형식인데요. 파이썬 라이브러리 isodate 패키지를 이용해서 ISO 8601 형식의 날짜와 시간 표현을 파싱하고 생성할 수 있습니다!

설치가 안되어 있다면 !pip isodate 패키지 를 설치해줍니다.

예시

import isodate
dur = isodate.parse_duration('PT3M45S') # 3분 45초 = 225초
print(dur.total_seconds())
# 결과
225.0 

'Duration' 컬럼의 값을 ISO 8601 기간 표현에서 초로 변환해야합니다.
그대로 함수화 시켜서 변환된 값을 새로운 컬럼 'seconds'을 만들어 정수형(int) 타입으로 저장 하겠습니다.

def iso_to_seconds(iso_duration):
  time_delta = isodate.parse_duration(iso_duration)
  return int(time_delta.total_seconds())

# 'Duration' 컬럼 값을 초로 변환하여 새로운 컬럼에 저장
df['seconds'] = df['Duration'].apply(iso_to_seconds)
st.write(df)
profile
다양한 컨텐츠가 있는 곳을 좋아합니다. 시리즈를 참고하시면 편하게 글을 보실 수 있습니다🫠

0개의 댓글