의미있는 방식으로 정렬되지 않은 비교적 큰 (수백 MB) CSV 파일에서 중복 행을 효율적으로 제거하려고합니다. 제가이 일을 할 수있는 기술을 가지고 있지만, 그것은 매우 무차별 적이며, 모에는 우아하고 더 효과적인 방법이 있다고 확신합니다.효과적으로 파이썬에서 CSV에서 중복 제거하기
답변
중복을 제거하려면 이전에 행을 본 적이 있는지 알려주는 메모리가 있어야합니다. 라인이나 아마도 체크섬을 기억해두면 (거의 안전 ...) 그런 솔루션은 아마도 "무력"을 느낄 것입니다.
줄을 처리하기 전에 정렬 할 수 있다면 작업은 서로 옆에 중복되므로 매우 쉽습니다.
감사합니다. 실제로 SQL Server의 varchars에 덤프하고 SQL에서 고유 행을 반환하도록했습니다. 그것은 무력 이었지만 잘 작동했습니다. – TimothyAWiseman
다음은 CSV에서 가져온 행을 목록의 목록으로 가정합니다. 그런 다음 당신이-복제 끊긴 부하하는지 기준으로 결정해야한다 (즉, 어떤 열) 아래의 예에서, 그것은 첫 번째 열입니다 (x[0]
)
def dedup(seq):
""" De-duplicate a list based on the first member of the sublist
"""
seen = set()
seen_add = seen.add
return [x for x in seq if
x[0] not in seen
and not seen_add(x[0])]
고마워요,하지만 이것은 전체 라인의 고유성을 보았습니다 (본질적으로 전체 라인 만 키가 손상됨) 나는 전체 문자열의 고유성을 찾고있었습니다. 당신의 테크닉은 특정 상황에서 훌륭하게 작동 할 것이지만,이 파일들은 내가 사용하고있는 저전력 컴퓨터에서 메모리 문제없이 이것을하기에는 너무 컸습니다. – TimothyAWiseman
- 1. VB 목록 상자에서 중복 제거하기
- 2. 일반 표현식으로 중복 줄 바꿈 제거하기
- 3. Editpad Lite 7을 사용하여 Regex로 중복 제거하기
- 4. 파이썬에서 콜렉션과 가장 효과적으로 교차하는 방법은 무엇입니까?
- 5. fd 중복 파이썬에서 자식 프로세스
- 6. 파이썬에서 중복 된 정수 계산하기
- 7. Excel에서 CSV에서 연속 된 중복 값 제거 Visual Basic
- 8. 효과적으로
- 9. 중복 코드를 제거하기 위해 공통 서브 클래스를 만드는 방법
- 10. 파이썬에서 다른 평등 테스트를 사용하여 중복 제거
- 11. 파이썬에서 하위 목록 중복 찾기 (계속)
- 12. 어떻게 효과적으로 파이썬에서 null 데이터로 파일을 채울 수 있습니까?
- 13. VS2008 제거하기
- 14. Derby.log 제거하기
- 15. csv에서 직접 var 읽기
- 16. CSV에서 데이터 가져 오기
- 17. csv에서 다차원 배열 만들기
- 18. Grails의 CSV에서 데이터로드
- 19. csv에서 SQLite 채우기
- 20. csv에서 트리 구조 생성
- 21. CSV를 CSV에서 읽기
- 22. 파이썬에서
- 23. 얼마나 효과적으로
- 24. csv에서 SQL DB2 대량 업데이트
- 25. asp.net vb CSV에서 선택된 CheckBoxList
- 26. CSV에서 yaml 파일로 작성 하시겠습니까?
- 27. CSV에서 데이터베이스에 잘못된 문자가 있음
- 28. SqlBulkCopy의 CSV에서 SQL 데이터 테이블
- 29. csv에서 배열로 이동하여 함수에 사용하기
- 30. CSV에서 PHP 로의 JSON을 MySQL에
당신은 코드를 시도? – Dogbert
주문이 중요하지 않다면, 나는 좋은 ol ''sort file | uniq' 그리고 내 인생을 함께 누리십시오. – Jacob
@cularis :'sort -u file'도 똑같은 일을하지 않겠습니까? –