Cách tìm các bản sao trong tệp csv bằng Python

Tôi là người mới bắt đầu sử dụng Python không có kiến ​​thức cơ bản về CNTT (Tôi quan tâm đến việc phát triển kiến ​​thức của mình từng bước về CNTT). Cho đến nay tôi đã viết các tập lệnh đơn giản bằng Python và tôi đã gặp sự cố. Tôi đã tìm kiếm trên Google, tuy nhiên tôi không tìm thấy câu trả lời thỏa đáng nào có thể giúp tôi - Vì vậy, tôi quyết định viết ở đây

Tôi đang gặp khó khăn trong việc xác định các bản sao trong tệp CSV. Tệp CSV của tôi chứa các liên hệ từ cơ sở dữ liệu. Mỗi cột tương ứng với dữ liệu cụ thể (tên, họ, chức danh công việc, công ty, email, ID liên hệ, v.v. ). Trong cơ sở dữ liệu này có các bản sao và tôi muốn đọc qua cơ sở dữ liệu này và xác định các email trùng lặp. Nếu tập lệnh tìm thấy email trùng lặp, thì tập lệnh sẽ ghi địa chỉ email, ID liên hệ vào một tệp riêng biệt - tạo tệp mới chỉ bao gồm các bản sao. Có ai có thể giúp tôi với nhiệm vụ này?

Trân trọng,
nấm lim xanh

csv trùng lặp python

0 0

Chia sẻ

  • 5 Cộng tác viên
  • 8 Trả lời
  • 9K Lượt xem
  • 5 ngày Khoảng thời gian thảo luận
  • Bài đăng mới nhất Bài đăng mới nhất của vegaseat

Câu trả lời được đề xuất

Đã trả lời bởi woooee 814 trong một

Bạn nên sử dụng một từ điển để lưu trữ các e-mail trong một từ điển nếu nó chưa có ở đó. Nếu nó ở đó, thì nó là một bản sao. Tôi khuyên bạn nên lưu trữ bản ghi gốc và bản sao vì chúng có thể khác nhau và bạn muốn giữ…

Đã được trả lời bởi rrashkin 41 trong một

Khi bạn xác định một bản sao, giả sử có 2 bản sao, cả hai đều được ghi vào tệp hay chỉ bản sao không được ghi đầu tiên?

Tất cả 8 câu trả lời

Cách tìm các bản sao trong tệp csv bằng Python

woooee 814 Gần thành Maven đăng bài

10 năm trước

Bạn nên sử dụng một từ điển để lưu trữ các e-mail trong một từ điển nếu nó chưa có ở đó. Nếu nó ở đó, thì nó là một bản sao. Tôi khuyên bạn nên lưu trữ bản ghi gốc và bản sao vì chúng có thể khác nhau và bạn muốn giữ bản ghi chính xác chứ không phải bản ghi đầu tiên được tìm thấy

0 0

Chia sẻ

Cách tìm các bản sao trong tệp csv bằng Python

mgunia 0 Áp phích dành cho người mới

10 năm trước

đây không phải là vấn đề vì các bản sao được phát hiện sẽ được đánh dấu là "email trùng lặp" trong cơ sở dữ liệu và do đó bị bỏ qua. Vì vậy sẽ không có thông tin nào bị bỏ sót. Vấn đề đối với tôi là vận hành từ điển. Tôi không biết làm cách nào để viết tập lệnh có nội dung "nếu email trùng lặp, hãy thêm vào tệp - và chỉ thêm ID liên hệ và địa chỉ email"

0 0

Chia sẻ

Cách tìm các bản sao trong tệp csv bằng Python

rrashkin 41 Áp phích đào tạo dành cho trẻ em

10 năm trước

Khi bạn xác định một bản sao, giả sử có 2 bản sao, cả hai đều được ghi vào tệp hay chỉ bản sao không được ghi đầu tiên?

0 0

Chia sẻ

Cách tìm các bản sao trong tệp csv bằng Python

mgunia 0 Áp phích dành cho người mới

10 năm trước

Rrashkin thân mến, vấn đề là tôi không biết làm cách nào để xác định các bản sao. Như tôi đã viết, tôi khá mới với Python và tôi không có nền tảng về CNTT (vì vậy tôi không thể so sánh nó với các ngôn ngữ lập trình khác). Tôi cho rằng tôi nên tạo một vòng lặp và "bảo" Python so sánh mọi bản ghi với toàn bộ cơ sở dữ liệu - tương tự như trong Excel sử dụng hàm Countif trong đó có Phạm vi và Tiêu chí. Nhưng làm cách nào để làm rõ rằng "tiêu chí" của tôi sẽ là địa chỉ email (là cột thứ 26 trong cơ sở dữ liệu của tôi) và nó phải được so sánh với "Phạm vi" sẽ là toàn bộ cơ sở dữ liệu?

0 0

Chia sẻ

Cách tìm các bản sao trong tệp csv bằng Python

rrashkin 41 Áp phích đào tạo dành cho trẻ em

10 năm trước

Câu hỏi của tôi thực sự là sau khi bạn xác định một bản sao (bây giờ đừng bận tâm đến cách bạn làm điều đó), sau đó bạn có 2 bản ghi giống nhau, giả sử, giá trị trường email. Tiếp theo là gì?

0 0

Chia sẻ

Cách tìm các bản sao trong tệp csv bằng Python

Ene Uran 638 Đăng Virtuoso

10 năm trước

Điều này có thể cung cấp cho bạn một vài gợi ý

''' csv_rread102.py
find duplicate email addresses in a csv file
'''

# csv type test data
# name, surname, job_title, company, email
csv_data = '''\
Arden,Adam,clerk,ACME Tools,[email protected]
Bison,Bert,manager,Ideal Plumbing,[email protected]
Clark,Clara,assistant,ACME Tools,[email protected]
Arden,Adam,supervisor,ACME Tools,[email protected]
Clark,Clara,receptionist,ACME Homes,[email protected]
'''

import csv

fname = "aaa_test7.csv"
# write the test data file
with open(fname, "w") as fout:
    fout.write(csv_data)

# read the test data file back in
with open(fname, "r") as fin:
    reader = csv.reader(fin)
    # create a dictionary of email:frequency pairs
    email_freq = {} 
    for row in reader:
        print(row)  # test
        name, surname, job_title, company, email = row 
        email_freq[email] = email_freq.get(email, 0) + 1

print('-'*70)

# refresh reader object
with open(fname, "r") as fin:
    reader = csv.reader(fin)
    # make a list of all rows that have duplicate emails
    duplicate_emails = []
    for row in reader:
        name, surname, job_title, company, email = row
        # add row to list if email frequency is above 1
        if email_freq[email] > 1:
            duplicate_emails.append(row)


# show results
import pprint
pprint.pprint(email_freq)
print('-'*70)
pprint.pprint(sorted(duplicate_emails))

''' my result >>>
['Arden', 'Adam', 'clerk', 'ACME Tools', '[email protected]']
['Bison', 'Bert', 'manager', 'Ideal Plumbing', '[email protected]']
['Clark', 'Clara', 'assistant', 'ACME Tools', '[email protected]']
['Arden', 'Adam', 'supervisor', 'ACME Tools', '[email protected]']
['Clark', 'Clara', 'receptionist', 'ACME Homes', '[email protected]']
----------------------------------------------------------------------
{'[email protected]': 2, '[email protected]': 1, '[email protected]': 2}
----------------------------------------------------------------------
[['Arden', 'Adam', 'clerk', 'ACME Tools', '[email protected]'],
 ['Arden', 'Adam', 'supervisor', 'ACME Tools', '[email protected]'],
 ['Clark', 'Clara', 'assistant', 'ACME Tools', '[email protected]'],
 ['Clark', 'Clara', 'receptionist', 'ACME Homes', '[email protected]']]
'''

0 0

Chia sẻ

Cách tìm các bản sao trong tệp csv bằng Python

mgunia 0 Áp phích dành cho người mới

10 năm trước

Cảm ơn bài viết của bạn Ene Uran. Mã hoạt động với tôi khi nó giống như bản gốc. Tuy nhiên, tôi có tệp CSV hiện có với toàn bộ cơ sở dữ liệu mà tập lệnh này sẽ đọc qua. Vấn đề là, khi tôi thay thế các giá trị đã nhập trong csv_data thành đường dẫn của tệp csv, nó sẽ trả về lỗi về số lượng giá trị không đủ (được xác định trong dòng 23). Tôi cho rằng phần này - "tên, họ, chức danh công việc, công ty, email = hàng" đang tạo ra vấn đề này và nó nên được thay thế bằng một thứ gì đó phù hợp

Tệp của tôi chứa đầy các cột khác nhau. Tuy nhiên, tôi chỉ cần cột số 1 (ID liên hệ) và cột số 25 (địa chỉ email). Tôi nên sửa đổi mã này như thế nào để chỉ nhận được kết quả cuối cùng với 2 cột đó?

Làm cách nào để tìm các bản sao trong tệp CSV bằng gấu trúc Python?

Các gấu trúc. Khung dữ liệu. Phương thức duplicated() được sử dụng để tìm các hàng trùng lặp trong DataFrame. Nó trả về một chuỗi boolean xác định xem một hàng trùng lặp hay duy nhất.

Làm cách nào để xóa các bản ghi trùng lặp khỏi tệp CSV bằng Python?

Đã liên kết .
Xóa các hàng trùng lặp khỏi tệp CSV bằng tập lệnh python và cập nhật tệp CSV này
-2. Xóa các giá trị trùng lặp trong tệp csv
124. Nhập tệp CSV dưới dạng Pandas DataFrame
con trăn. Xóa các mục nhập CSV trùng lặp
xóa các bản sao trên tệp csv lớn, chỉ xem một tập hợp con các cột

Có chức năng trùng lặp trong Python không?

Phương thức đã sao chép () trả về một Chuỗi có giá trị Đúng và Sai mô tả hàng nào trong Khung dữ liệu bị trùng lặp và không. Sử dụng tham số tập hợp con để chỉ định xem có cột nào không được xem xét khi tìm kiếm các cột trùng lặp không.