numpy/pandas로 같은 값을 연속 어느 정도 연속한 부분을 제거한다
목적
아무래도 적당한 시계열 데이터 등을 수집하여 보관한다고 한다.
수집 방법에 따라서는 일정한 구간 같은 값을 계속 낼 수 있지만, 그 사이의 분을 기록하고 있는 것은 용량을 압박한다.
예를 들어 아래 그림과 같이 0이 길게 계속되는 구간이 복수 있고, 이것을 제거하고 싶다고 한다.
구현
이하의 코드는 사이즈 조정이 조금 들어가 있다.
valididx = np.where((data>1e-5) | (data<-1e-5)) # Non zero only count rigid zeros
spaceidx=np.diff(valididx,prepend=0)
delidx=np.where(spaceidx>600) # Assume N = 600
delidxs = []
for deli in delidx[1]:
delidxs.extend(np.arange(valididx[0][deli-1],valididx[0][deli]))
droppedbuff = df.drop(delidxs,axis=0)
여분의 데이터를 떨어뜨리면 아래와 같이 깔끔하게 보인다.
Reference
이 문제에 관하여(numpy/pandas로 같은 값을 연속 어느 정도 연속한 부분을 제거한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ossyaritoori/items/7f1e62415bdcb69d0c09텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)