본문 바로가기
파이썬

파이썬 시간과 분 단위로 두 열 간의 Pandas DataFrame 시간 차이 계산

by º기록 2020. 12. 15.
반응형

데이터 프레임에 fromdate todate 라는 두 개의 열이 있습니다.

import pandas as pd

data = {'todate': [pd.Timestamp('2014-01-24 13:03:12.050000'), pd.Timestamp('2014-01-27 11:57:18.240000'), pd.Timestamp('2014-01-23 10:07:47.660000')],
        'fromdate': [pd.Timestamp('2014-01-26 23:41:21.870000'), pd.Timestamp('2014-01-27 15:38:22.540000'), pd.Timestamp('2014-01-23 18:50:41.420000')]}

df = pd.DataFrame(data)

두 날짜 간의 차이를 찾기 위해 새 열 diff 를 추가합니다.

df['diff'] = df['fromdate'] - df['todate']

diff 열을 얻었지만 24 시간 이상인 days 가 포함되어 있습니다.

                   todate                fromdate                   diff
0 2014-01-24 13:03:12.050 2014-01-26 23:41:21.870 2 days 10:38:09.820000
1 2014-01-27 11:57:18.240 2014-01-27 15:38:22.540 0 days 03:41:04.300000
2 2014-01-23 10:07:47.660 2014-01-23 18:50:41.420 0 days 08:42:53.760000

결과를 시간과 분으로 만 변환하려면 어떻게합니까 (예 : 일이 시간으로 변환 됨)?

 

해결 방법

 

Pandas 타임 스탬프 차이는 datetime.timedelta 객체를 반환합니다. * as_type * 메소드를 사용하여 쉽게 시간으로 변환 할 수 있습니다.

import pandas
df = pandas.DataFrame(columns=['to','fr','ans'])
df.to = [pandas.Timestamp('2014-01-24 13:03:12.050000'), pandas.Timestamp('2014-01-27 11:57:18.240000'), pandas.Timestamp('2014-01-23 10:07:47.660000')]
df.fr = [pandas.Timestamp('2014-01-26 23:41:21.870000'), pandas.Timestamp('2014-01-27 15:38:22.540000'), pandas.Timestamp('2014-01-23 18:50:41.420000')]
(df.fr-df.to).astype('timedelta64[h]')

수득,

0    58
1     3
2     8
dtype: float64

 

참조 페이지 https://stackoverflow.com/questions/22923775

 

 

반응형