일주일에 1을 초과하여 비 순차적이되면 groupby에서 데이터를 제거하려고합니다. 예 : If 일주일에 간격이 있으면 해당 행과 그 행의 후속 행을 제거하고 싶습니다. 아래는 내가 가지고있는 데이터의 구조와 내가 찾고있는 이상적인 결과의 간단한 예제이다. 데이터는 국가 및 제품별로 그룹화해야합니다. 주 5 위의 주 또한 DE 애플을 제거이 3 주이기 때문에 앞의 주 주 5 & 6 제거 DE 애플 4. 때문에 Python Pandas : groupby의 이전 행에있는 값이 특정 조건을 충족하는 경우 데이터 프레임에서 행 제거
import pandas as pd
data = {'Country' : ['US','US','US','US','US','DE','DE','DE','DE','DE'],'Product' : ['Coke','Coke','Coke','Coke','Coke','Apple','Apple','Apple','Apple','Apple'],'Week' : [1,2,3,4,6,1,2,3,5,6] }
df = pd.DataFrame(data)
print df
#Current starting Dataframe.
Country Product Week
0 US Coke 1
1 US Coke 2
2 US Coke 3
3 US Coke 4
4 US Coke 6
5 DE Apple 1
6 DE Apple 2
7 DE Apple 3
8 DE Apple 5
9 DE Apple 6
#Ideal Output below:
Country Product Week
0 US Coke 1
1 US Coke 2
2 US Coke 3
3 US Coke 4
5 DE Apple 1
6 DE Apple 2
7 DE Apple 3
그래서 출력은 미국 콜라를 위해 6 주를 제거 그 5 또는 1
덕분에, 그것은 미국 콜라 6, DE 애플 5. 그러나 DE 애플 6 개 유적을 떨어 뜨리고 일했다. – IcemanBerlin
당신 말이 맞아요. 나는 그것을 지금 고쳤다 – user1827356
첫 번째 작품은 고맙지 만, .cumsum() == 1을 .cumsum()! = 1]로 변경하면 반대가된다.) 완벽하다. 두 번째로 논리를 좋아해서 추가 열을 추가하는 것을 더 쉽게 이해할 수 있지만 이상한 오류 메시지가 나타납니다. "TypeError : 입력 된 열의 프레임 인덱스와 호환되지 않는 색인"모든 입력에 대해 감사드립니다. – IcemanBerlin