반응형
데이터 프레임에 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
반응형
'파이썬' 카테고리의 다른 글
파이썬 아래 디렉토리를 파지 않고 os.walk (0) | 2020.12.16 |
---|---|
파이썬 scikit-learn에서 CountVectorizer를 사용하여 토큰을 추출하는 데 사용되지 않은 문서의 빈도를 계산할 수 있습니까? (0) | 2020.12.16 |
파이썬 OpenCV를 사용하여 Python의 이미지에 노이즈 (Gaussian / salt and pepper 등)를 추가하는 방법 (0) | 2020.12.15 |
파이썬 Creating a zero-filled pandas data frame (0) | 2020.12.15 |
파이썬 How to read a file in reverse order? (0) | 2020.12.15 |
댓글