2014-03-05 3 views
2

나는 시장 가격의 데이터 프레임을 가지고 있습니다. 타임 스탬프는 마이크로 초입니다.고르지 않은 타임 스탬프로 팬더 데이터 프레임 그룹

Time  Bid 
0 2014-03-03 23:30:30.224323 0.892500 
1 2014-03-03 23:30:30.224390 0.892525 
2 2014-03-03 23:30:30.224408 0.892525 
3 2014-03-03 23:30:30.364299 0.892525 
4 2014-03-03 23:30:31.022652 0.892500 
5 2014-03-03 23:30:31.022702 0.892525 
6 2014-03-03 23:30:31.866949 0.892525 
7 2014-03-03 23:30:33.366843 0.892525 
8 2014-03-03 23:30:33.858239 0.892525 
9 2014-03-03 23:30:34.360997 0.892525 
10 2014-03-03 23:30:35.034307 0.892525 
11 2014-03-03 23:30:36.110848 0.892525 
12 2014-03-03 23:30:36.359973 0.892525 
13 2014-03-03 23:30:38.111191 0.892525 
14 2014-03-03 23:30:41.599924 0.892525 
15 2014-03-03 23:30:41.599972 0.892500 

방법, 예를 들어, 멀리 마이크로 스트립에 의해 시간에 의해 I 그룹화를 수행 OHLC 균등 시간 슬롯 (오픈, 고가, 저가, 닫기) 구조 (1 분, 5mins, 1시간 등)로 변환하는 방법, 또한 각 시간 슬롯에 대해 계산합니까?

e['Time2'] = pd.to_datetime(e.Time, format='%Y/%m/%d %H:%M:%S') 

% f을 (를) 삭제했지만 다른 열을 추가하려고 시도했지만 Time2 열은 시간 열과 동일하게 보입니다.

많은 감사, 리샘플링 할 수 있도록 당신은 날짜를 인덱스를 만들 필요가

+0

나는 리샘플링 함수를 잊어 버렸지 만, 일반적인 함수 (또는 람다)는 어때? 또한 리 샘플 방법은 제한적입니다. – bbc

답변

3

처럼 뭔가로 변환하는 방법

:

In [11]: df = df.set_index('Time') 

In [12]: df.resample('5min', how='ohlc') 
Out[12]: 
         Bid 
         open  high  low close 
Time 
2014-03-03 23:30:00 0.8925 0.892525 0.8925 0.8925 

참고 : 불행하게도 to_datetime 아무튼 ' t 실패하면 (적어도 기본적으로) 열의 dtype을 확인하는 것이 좋습니다.

+0

어떻게 카운트 기능을 적용합니까? how = ???) Hmmm, 알아 냈어, np.size – bbc

+1

@bbc how = 'count'도 작동한다. –

+0

끝내서 유효한 문자열 목록이 궁금합니다. – bbc