2016-06-14 7 views
7

밀의 두 번째 시간 데이터 데이터가있는 데이터 프레임이 df입니다.pandas 데이터 프레임에서 비 영업일 행을 제거하십시오.

df = wt["WHEAT_USD"] 

2016-05-02 02:00:00+02:00 4.780 
2016-05-02 02:01:00+02:00 4.777 
2016-05-02 02:02:00+02:00 4.780 
2016-05-02 02:03:00+02:00 4.780 
2016-05-02 02:04:00+02:00 4.780 
Name: closeAsk, dtype: float64 

데이터를 플롯 할 때 주말 때문에 가로줄이 고르지 않습니다. 데이터 프레임 자체에서 단순히 비 업무 일을 제거하는 간단한 방법이 있습니까?

뭔가

같은
df = df.BDays() 

답변

14
하나의 간단한 해결책은 월요일부터 금요일까지에없는 일을 슬라이스하는 것입니다

:

In [11]: s[s.index.dayofweek < 5] 
Out[11]: 
2016-05-02 00:00:00 4.780 
2016-05-02 00:01:00 4.777 
2016-05-02 00:02:00 4.780 
2016-05-02 00:03:00 4.780 
2016-05-02 00:04:00 4.780 
Name: closeAsk, dtype: float64 

참고 :이 계정 공휴일 등 고려하지 않습니다

+0

감사합니다. – vandelay

3

팬더 BDay은 선택한 대답과 마찬가지로 .dayofweek<5으로 끝나지만 확장 할 수 있습니다. o 은행 휴일 등의 계정.

import pandas as pd 
from pandas.tseries.offsets import BDay 

isBusinessDay = BDay().onOffset 
csv_path = 'C:\\Python27\\Lib\\site-packages\\bokeh\\sampledata\\daylight_warsaw_2013.csv' 
dates_df = pd.read_csv(csv_path) 
match_series = pd.to_datetime(dates_df['Date']).map(isBusinessDay) 
dates_df[match_series] 
관련 문제