2016-11-03 10 views
2

나는 아래에 날짜 열과 4 개의 변수 열로 표현 될 수있는 df가 있습니다.datetimeindex - 각 달의 마지막 영업일에 의한 데이터 프레임 필터링

Date   A B C D 
2015-10-31 6 7 3 7 
2015-11-01 1 3 9 4 
2015-11-02 4 5 8 1 
2015-11-03 4 2 5 9 

내가 'EndofMonth'라는 추가 열을 추가하고 각 달 후행 n 번째 행을 복용하여 매월 마지막 영업일에 DF를 필터링 할 수 찾고 있어요 :

df['EndOfMonth'] = pd.to_datetime(df['DATE'], format="%Y%m") + MonthEnd(1) 
df.apply(lambda x: x.sort('dt', ascending=True).tail(1)) 

이가 나에게 오류를주고. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

+1

무엇이'MonthEnd (1)'입니까? –

답변

2

IIUC

df.resample('M', on='Date').apply(pd.DataFrame.tail, n=2) 

enter image description here


응답은 댓글을

d1 = df.resample('M').apply(pd.DataFrame.tail, n=2) 
d1.index = d1.index.droplevel(0) 
d1 

enter image description here

+0

이 오류에 대해 오류가 발생합니다. TypeError : resample()에 '예기치 않은 키워드'가 있습니다. 아마도 데이터 콜을 읽고 있기 때문일 수 있습니다. datetime이 아닌가? @piRSquared – spacedinosaur10

+1

'on'은 판다 0.19의'resample'을위한 새로운 매개 변수입니다. (pd.DataFrame.tail, n = 2)' – piRSquared

+0

@ piRSquared- 계속 질문을 드려서 죄송 합니다만, 이렇게하면 멀티 (df.set_index ('Date' -index (2 날짜). 인덱스 열 중 하나를 제거하는 것이 이상적입니다. 내가 어떻게 할 수 있니? 열 (df.drop) 삭제하는 방법을 알고 있지만 인덱스를 삭제하는 방법을 잘 모르겠습니다. – spacedinosaur10