다음과 같은 값 목록이있는 열이 있습니다.
100
200
300
500
600
650
1000
Groupby
각 행의 값 100
이 마지막 행 내에 있는 행의 일괄 처리를 가져 오기 위해 (또는 유사한 효율적인 구성) 을 수행하고 싶습니다 .
이 경우 위의 예에서 생성 된 배치는
100, 200, 300
,
500, 600, 650
1000
판다에서 할 수 있습니까? Pandas는 SQL과 유사한 쿼리를 허용하려고 시도하므로 그럴 것이라고 생각합니다.
이 질문 에 대한 답변에 설명 된 것과 유사한 접근 방식을 사용할 수 있습니다 . 기본적으로 3 단계 프로세스입니다.
shift
구별하려는 행간 기준을 계산하는 데 사용하십시오 .cumsum
각 그룹에 대해 단일 값의 분리 된 "블록"으로 새로운 시리즈를 만들려면이 기준을 요약합니다.다음은 그 예입니다.
>>> x = pandas.Series([100, 200, 300, 500, 600, 650, 1000, 900, 750])
>>> x.groupby(((x - x.shift()).abs() > 100).cumsum()).apply(list)
0 [100, 200, 300]
1 [500, 600, 650]
2 [1000, 900]
3 [750]
dtype: object
내가 기준을 사용합니다 > 100
의 반대, <= 100
당신이 언급 한 기준을. 이 접근 방식에서는 그룹을 결합하는 기준이 아니라 그룹 을 분리 하는 기준을 사용해야하므로 그룹화 기준의 부정을 사용해야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다