2017-05-10 2 views
1

datetime 컬럼의 중간 값을 datetime 형식으로 계산하여 리턴하는 방법이 있습니까? 파이썬에서 datetime64 [ns] 형식의 열의 중앙값을 계산하려고합니다.panda datetime64 컬럼의 중앙값

df['date'].head() 

0 2017-05-08 13:25:13.342 
1 2017-05-08 16:37:45.545 
2 2017-01-12 11:08:04.021 
3 2016-12-01 09:06:29.912 
4 2016-06-08 03:16:40.422 

이름 : 최신 성, DTYPE : datetime64 [NS]

내 목표는 위의 날짜 열으로 같은 날짜 형식의 중간을하는 것입니다 :

아래는 칼럼 샘플입니다 시도 np.array로 변환 :

median_ = np.median(np.array(df['date'])) 

을하지만 오류가 발생합니다 :

INT64로 변환 한 후 작동하지 않는 날짜에 반환 형식으로 중앙 및 시도를 계산

df['date'].astype('int64').median().astype('datetime64[ns]') 

답변

2

어떻게 그냥 중간 값을 복용에 대한?

dates = list(df.sort('date')['date']) 
print dates[len(dates)//2] 

테이블을 정렬하면 줄을 건너 뛸 수도 있습니다.

+0

감사합니다. @kabanus. 이것은 잘 작동합니다. 나에게 컬럼의 길이를 정렬하고 사용하는 것은 발생하지 않았습니다. –

+0

@ T-Jay 도와 드리겠습니다. 기분을 좋게하고 다른 사람들의 유익을 위해 받아 들여야한다는 것을 잊지 마십시오. – kabanus

0

당신은 그래서 int 먼저 그것을 변환하려면 median()float를 반환 가까이 :

result = np.datetime64(median, "ns") #unit: nanosecond 
0

또한 시도 할 수 있습니다 :

import math 

median = math.floor(df['date'].astype('int64').median()) 

는 그 다음 intdatetime64로 날짜를 나타냅니다 변환 데이터 프레임의 길이가 짝수 인 경우 중앙값과 거의 같지 않은 일부 변환이 포함 된 quantile (0.5)이지만, 충분할 수도 있습니다.

df['date'].astype('datetime64[ns]').quantile(.5)