Pandas, Jupyter Notebooks 및 Python을 사용하고 있습니다. 4 열 및 10000 개의 레코드가있는 데이터 집합이 있습니다. 현재 다음 코드를 사용하여 중복 파일을 선택하면 코드가 잘못된 레코드를 가져옵니다. FYI : 컬럼의 데이터 유형은 다음과 같다 :Pandas Dataframe 중복 레코드로 잘못된 레코드를 가져옴
Initial_Date = int64
Final_Date = int64
Origin = object
sub_location = object
내 현재 코드는 :
: 여기dup = df.duplicated(['Initial_Date','Final_Date','Origin','sub_location'], keep='last')
위의 코드를 이용하여 포착되고있는 데이터 세트의 예는
00121980,00121980,Australia,Brighton:Queensland
00121980,00121980,Australia,Brisbane:Queensland
17021987,17021987,Bangladesh,Sylhet-Sunamganj
17021987,17021987,Brazil,Sao Paolo suburb
첫 번째 두 레코드를 보면 : 초기 및 최종 날짜와 원본이 일치하지만 sub_origin은 일치하지 않습니다. 하나는 브라이튼이고 다른 하나는 브리즈번입니다.
동일하게 마지막 두 레코드에 적용됩니다. 날짜는 일치하지만 Origin은 동일하지 않습니다.
df.duplicated가 올바른 레코드를 선택하지 않았거나 제대로 사용하지 않는다는 것을 이해합니다. df.duplicated로 데이터 유형이 중요합니까?
방금 df.duplicated
을 사용하는 경우 반환되는 부울 시리즈에는 중복이 없습니다. 누군가 제발 설명해 주실 수 있습니까?/이중화 된 방법을 보여 주시겠습니까?
이것은 전체 데이터 세트가 아니지만 내가 제시 한 예제는 실제 데이터 세트에있는 문제와 정확히 일치한다는 점에 유의하십시오. df.duplicated 기준을 좁히고이 오류를 발견했습니다.
고마워 : D를 keep
매개 변수에
@Timetraveller이 답변은 다음과 같습니다. 귀하의 예제에서'dup'은'keep = last' 매개 변수로 인해 복제 된 모든 레코드를 보여주지 않았습니다. 'keep = False'가 설정 되었다면 마지막 두 레코드는 각각 다른 레코드의 중복이었고 서로는 볼 수 없었습니다. – piRSquared
@MaxU 안녕하세요, 중복을 삭제하려면 어떻게됩니까? keep = False를 선택하면 모든 인스턴스가 삭제됩니다. 위의 예제에서 값 1을 포함하는 레코드 0,1,2가 삭제됩니다. 세 기록 중 하나를 유지하려면 어떻게됩니까? 보관을 '마지막'또는 '처음'으로 변경합니까? – Timetraveller
@MaxU 감사합니다. – Timetraveller