• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

시계열 처리 질문입니다.

20.11.10 01:05 작성 조회수 148

1

안녕하세요. 강사님

시계열 처리할때 날짜형태 변경은 설명이 있는데, 시간분으로 변경 설명 부탁 합니다. 예를 들면 칼럼 항목에서  0:05 이런 식으로 시간 분으로 Object 구성했는데(초는 필요없습니다.), 이걸 시간 분으로 변경은 어떻게 하는지 궁금합니다. 

답변 1

답변을 작성해보세요.

0

안녕하세요.

질문 주신 내용에서 시간만을 계산하신다면 파이썬의 time 함수를 불러서 사용하는 방법이 있을거 같습니다.

파이썬 표준 라이브러리를 사용하는 방법입니다.

좀 더 자세한 내용은 여기를 보세요 =>  [datetime — Basic date and time types — Python 3.9.0 documentation](https://docs.python.org/3/library/datetime.html#datetime.time)

from datetime import time
time.fromisoformat('04:23:01')

time.fromisoformat('04:23:01.000384')

time.fromisoformat('04:23:01+04:00')

그리고 판다스를 사용하는 방법입니다. 하지만 여기에서도 파이썬 내장 함수인 datetime을 사용하게 됩니다.

pd.Timedelta를 사용하면 Timedelta 라는 형식으로 반환하게 됩니다.

좀 더 자세한 내용은 여기를 보세요 => https://pandas.pydata.org/pandas-docs/stable/user_guide/timedeltas.html

In [1]: import datetime

# strings
In [2]: pd.Timedelta('1 days')
Out[2]: Timedelta('1 days 00:00:00')

In [3]: pd.Timedelta('1 days 00:00:00')
Out[3]: Timedelta('1 days 00:00:00')

In [4]: pd.Timedelta('1 days 2 hours')
Out[4]: Timedelta('1 days 02:00:00')

In [5]: pd.Timedelta('-1 days 2 min 3us')
Out[5]: Timedelta('-2 days +23:57:59.999997')

# like datetime.timedelta
# note: these MUST be specified as keyword arguments
In [6]: pd.Timedelta(days=1, seconds=1)
Out[6]: Timedelta('1 days 00:00:01')

# integers with a unit
In [7]: pd.Timedelta(1, unit='d')
Out[7]: Timedelta('1 days 00:00:00')

# from a datetime.timedelta/np.timedelta64
In [8]: pd.Timedelta(datetime.timedelta(days=1, seconds=1))
Out[8]: Timedelta('1 days 00:00:01')

In [9]: pd.Timedelta(np.timedelta64(1, 'ms'))
Out[9]: Timedelta('0 days 00:00:00.001000')

# negative Timedeltas have this string repr
# to be more consistent with datetime.timedelta conventions
In [10]: pd.Timedelta('-1us')
Out[10]: Timedelta('-1 days +23:59:59.999999')

# a NaT
In [11]: pd.Timedelta('nan')
Out[11]: NaT

In [12]: pd.Timedelta('nat')
Out[12]: NaT

# ISO 8601 Duration strings
In [13]: pd.Timedelta('P0DT0H1M0S')
Out[13]: Timedelta('0 days 00:01:00')

In [14]: pd.Timedelta('P0DT0H0M0.000000123S')
Out[14]: Timedelta('0 days 00:00:00.000000123')

In [17]: pd.to_timedelta('1 days 06:05:01.00003')
Out[17]: Timedelta('1 days 06:05:01.000030')

In [18]: pd.to_timedelta('15.5us')
Out[18]: Timedelta('0 days 00:00:00.000015500')