여러 열의 값을 기반으로 중복 항목의 모든 행 제거

cover51

여러 열과 여러 행 (200k)이있는 큰 데이터 프레임이 있습니다. 그룹 변수로 행을 정렬하고 각 그룹은 하나 이상의 항목을 가질 수 있습니다. 각 그룹의 다른 열은 동일한 값을 가져야하지만 일부 경우에는 그렇지 않습니다. 다음과 같이 보입니다.

group   name    age    color
1       Anton   50     orange
1       Anton   21     red
1       Anton   21     red
2       Martin  78     black
2       Martin  78     blue
3       Maria   25     red
3       Maria   29     pink
4       Jake    33     blue

연령이나 색상이 그룹의 모든 행에 대해 동일하지 않은 경우 그룹의 모든 항목을 삭제하고 싶습니다. (관찰 오류 표시) 그러나 모든 열이 동일한 값을 가질 경우 중복 된 항목을 유지하고 싶습니다. 따라서 기대하는 출력은 다음과 같습니다.

group   name    age    color   
2       Martin  78     black
2       Martin  78     blue  
4       Jake    33     blue

비슷한 경우에 매우 빠르게 작동하는이 함수를 사용했습니다. df = df.groupby ( 'group'). filter (lambda x : x.count () == 1)

그러나 이것은 열의 값 (연령, 색상)을 확인할 수 없습니다. 나는 groupby 기능을 가지고 놀았지만 그것을 이해하지 못하는 것 같습니다.

/ e : 내 질문에서 중요한 조건을 놓쳤다는 것을 깨달았습니다. 하나 또는 여러 개의 SPECIFIC 열에 중복 값이있는 경우에만 관측 값을 삭제하고 싶습니다. 그러나 다른 열은 다를 수 있습니다. 위의 예에서 그룹 내 색상 차이는 상관 없지만 나이가 다른 값인지 확인하고 싶다고 가정 해 보겠습니다. (이를 반영하기 위해 예제를 편집했습니다) 실제 사례는 더 일반적입니다 더 많은 열이 포함되어 있으므로 관찰을 삭제할 때 몇 개의 열을 확인하고 다른 열을 무시하고 싶습니다.

chrisb

@ismax의 대답이 작동하는 동안 .count()솔루션 과 유사한 패턴을 사용할 수 있지만 먼저 중복을 삭제 하십시오 .

In [229]: In [179]: df.groupby('group').filter(lambda x: len(x.drop_duplicates(subset=['age'])) == 1)
Out[229]: 
   group    name  age  color
3      2  Martin   78  black
4      2  Martin   78   blue
7      4    Jake   33   blue

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

세 개의 열을 기반으로 중복 행 제거

분류에서Dev

Oracle은 2 개 열의 최대 값을 기반으로 행 중복 제거

분류에서Dev

R : 여러 변수 / 열 / 제약 조건을 기반으로 항목의 유사 / "중복"쌍 찾기

분류에서Dev

열 목록 항목의 값을 기준으로 행 제거

분류에서Dev

여러 키의 중복 값을 기반으로 객체 배열에서 요소 제거

분류에서Dev

R-여러 열을 기반으로 중복 행을 식별하고 날짜를 기반으로 제거

분류에서Dev

다른 열 값의 존재를 기반으로 중복 행 제거

분류에서Dev

다음 열의 가장 높은 값을 유지하면서 열을 기반으로 중복 행 제거

분류에서Dev

Pandas-특정 열의 값을 기반으로 중복 제거

분류에서Dev

다른 열의 값을 기반으로 중복 제거

분류에서Dev

다른 열의 값을 기반으로 중복 제거

분류에서Dev

세 가지 다른 열의 내용을 기반으로 중복 행 제거

분류에서Dev

Pandas의 대칭 행렬을 기반으로 계열에서 중복 제거

분류에서Dev

열 값을 기반으로 중복 행 제거

분류에서Dev

R의 행을 하나를 제외한 모든 중복 값으로 병합

분류에서Dev

여러 열을 기반으로 중복 값을 제거하는 방법

분류에서Dev

여러 열 값을 기반으로 테이블에서 중복 제거

분류에서Dev

두 개의 열과 세 번째 열의 조건을 기반으로 중복 행 제거

분류에서Dev

테이블의 한 열만 기반으로 중복 값 제거

분류에서Dev

Microsoft Excel에서 A 열의 값을 기반으로 B 열에서 중복 제거

분류에서Dev

R의 다른 열 값을 기반으로 행 중복

분류에서Dev

Spark의 값을 기반으로 중복 키 제거

분류에서Dev

열의 중복 항목을 제외한 모든 행을 어떻게 계산할 수 있습니까?

분류에서Dev

다른 열 값을 기반으로 중복 항목 삭제 (Python)

분류에서Dev

다른 열의 값을 기반으로 중복을 제거하는 SQL 문

분류에서Dev

Python Pandas : 하나의 열을 기반으로 중복 행을 삭제하고 여러 열의 정보를 연결합니다.

분류에서Dev

목록 값이있는 여러 열을 기반으로 데이터 프레임에서 중복 행을 삭제합니다.

분류에서Dev

R의 두 열을 기반으로 중복 제거

분류에서Dev

R의 3 개 열을 기반으로 중복 제거

Related 관련 기사

  1. 1

    세 개의 열을 기반으로 중복 행 제거

  2. 2

    Oracle은 2 개 열의 최대 값을 기반으로 행 중복 제거

  3. 3

    R : 여러 변수 / 열 / 제약 조건을 기반으로 항목의 유사 / "중복"쌍 찾기

  4. 4

    열 목록 항목의 값을 기준으로 행 제거

  5. 5

    여러 키의 중복 값을 기반으로 객체 배열에서 요소 제거

  6. 6

    R-여러 열을 기반으로 중복 행을 식별하고 날짜를 기반으로 제거

  7. 7

    다른 열 값의 존재를 기반으로 중복 행 제거

  8. 8

    다음 열의 가장 높은 값을 유지하면서 열을 기반으로 중복 행 제거

  9. 9

    Pandas-특정 열의 값을 기반으로 중복 제거

  10. 10

    다른 열의 값을 기반으로 중복 제거

  11. 11

    다른 열의 값을 기반으로 중복 제거

  12. 12

    세 가지 다른 열의 내용을 기반으로 중복 행 제거

  13. 13

    Pandas의 대칭 행렬을 기반으로 계열에서 중복 제거

  14. 14

    열 값을 기반으로 중복 행 제거

  15. 15

    R의 행을 하나를 제외한 모든 중복 값으로 병합

  16. 16

    여러 열을 기반으로 중복 값을 제거하는 방법

  17. 17

    여러 열 값을 기반으로 테이블에서 중복 제거

  18. 18

    두 개의 열과 세 번째 열의 조건을 기반으로 중복 행 제거

  19. 19

    테이블의 한 열만 기반으로 중복 값 제거

  20. 20

    Microsoft Excel에서 A 열의 값을 기반으로 B 열에서 중복 제거

  21. 21

    R의 다른 열 값을 기반으로 행 중복

  22. 22

    Spark의 값을 기반으로 중복 키 제거

  23. 23

    열의 중복 항목을 제외한 모든 행을 어떻게 계산할 수 있습니까?

  24. 24

    다른 열 값을 기반으로 중복 항목 삭제 (Python)

  25. 25

    다른 열의 값을 기반으로 중복을 제거하는 SQL 문

  26. 26

    Python Pandas : 하나의 열을 기반으로 중복 행을 삭제하고 여러 열의 정보를 연결합니다.

  27. 27

    목록 값이있는 여러 열을 기반으로 데이터 프레임에서 중복 행을 삭제합니다.

  28. 28

    R의 두 열을 기반으로 중복 제거

  29. 29

    R의 3 개 열을 기반으로 중복 제거

뜨겁다태그

보관