Cách đọc tệp CSV trong Python (Mô-đun, Ví dụ về Pandas)

⚡ Tóm tắt thông minh

Tệp CSV lưu trữ dữ liệu dạng bảng dưới dạng văn bản thuần túy, với dấu phẩy phân tách các cột và dấu xuống dòng phân tách các hàng. Tại đây, bạn sẽ học cách đọc và ghi tệp CSV. Python Sử dụng mô-đun csv tích hợp sẵn và thư viện pandas.

  • 📄 Những gì nó là: Tệp CSV lưu trữ dữ liệu dạng bảng dưới dạng văn bản thuần được phân tách bằng dấu phẩy.
  • ???? csv.reader: csv.reader() đọc các hàng từ một tệp CSV dưới dạng danh sách.
  • 📚 DictReader: csv.DictReader() đọc từng hàng vào một từ điển có thứ tự.
  • 🇧🇷 csv.writer: Các phương thức `csv.writer()` và `writerow()` ghi các hàng vào một tệp CSV.
  • 🐼 Gấu trúc: Các hàm pandas.read_csv() và to_csv() đọc và ghi các tệp CSV chỉ trong một dòng lệnh.
  • 🤖 Hỗ trợ từ AI: Các công cụ AI như Copilot tạo ra mã đọc và ghi CSV ngay lập tức.

Đọc tệp CSV trong Python

Tệp CSV là gì?

A Tệp CSV là một loại tệp văn bản đơn giản sử dụng cấu trúc cụ thể để sắp xếp dữ liệu dạng bảng. Định dạng chuẩn của tệp CSV được xác định bởi dữ liệu hàng và cột trong đó dòng mới kết thúc mỗi hàng để bắt đầu hàng tiếp theo và mỗi cột được phân tách bằng dấu phẩy trong hàng.

CSV là định dạng phổ biến để trao đổi dữ liệu vì nó nhỏ gọn, đơn giản và chung chung. Nhiều dịch vụ trực tuyến cho phép người dùng xuất dữ liệu dạng bảng từ trang web sang tệp CSV. Các tệp CSV sẽ mở ra Excel và gần như tất cả các cơ sở dữ liệu đều có công cụ cho phép nhập từ tệp CSV.

Tệp mẫu CSV

Dữ liệu ở dạng bảng còn được gọi là CSV (giá trị được phân tách bằng dấu phẩy) - nghĩa đen là “giá trị được phân tách bằng dấu phẩy”. Đây là định dạng văn bản dành cho việc trình bày dữ liệu dạng bảng. Mỗi dòng của tập tin là một dòng của bảng. Các giá trị của các cột riêng lẻ được phân tách bằng ký hiệu phân cách – dấu phẩy (,), dấu chấm phẩy (;) hoặc ký hiệu khác. CSV có thể được đọc và xử lý dễ dàng bằng Python.

Hãy xem xét Bảng sau

Bảng dữ liệu

Ngôn ngữ lập trình Thiết kế bởi Xuất hiện Extension
Python Guido van Rossum 1991 .py
Java yêu tinh james 1995 .Java
C++ Bjarne Stroustrup 1983 .cpp

Bạn có thể biểu diễn bảng này trong csv như dưới đây.

Dữ liệu CSV

Ngôn ngữ lập trình, Thiết kế bởi, Xuất hiện, Mở rộng

Python, Guido van Rossum, 1991, .py

Java, James Gosling, 1995, .java

C++, Bjarne Stroustrup,1983,.cpp

Như bạn có thể thấy mỗi hàng là một dòng mới và mỗi cột được phân tách bằng dấu phẩy. Đây là ví dụ về hình thức của tệp CSV.

Tải xuống dữ liệu CSV

Python Mô-đun CSV

Python cung cấp mô-đun CSV để xử lý các tệp CSV. Để đọc/ghi dữ liệu, bạn cần lặp qua các hàng của CSV. Bạn cần sử dụng phương pháp phân tách để lấy dữ liệu từ các cột được chỉ định.

Chức năng mô-đun CSV

Trong tài liệu mô-đun CSV, bạn có thể tìm thấy các chức năng sau:

  • csv.field_size_limit – trả về kích thước trường tối đa
  • csv.get_dialect – lấy phương ngữ được liên kết với tên
  • csv.list_dialects – hiển thị tất cả các phương ngữ đã đăng ký
  • csv.reader – đọc dữ liệu từ tệp csv
  • csv.register_dialect – liên kết phương ngữ với tên
  • csv.writer – ghi dữ liệu vào tệp csv
  • csv.unregister_dialect – xóa phương ngữ được liên kết với tên sổ đăng ký phương ngữ
  • csv.QUOTE_ALL – Trích dẫn mọi thứ, không phân biệt loại.
  • csv.QUOTE_MINIMAL – Trường trích dẫn có ký tự đặc biệt
  • csv.QUOTE_NONNUMERIC – Trích dẫn tất cả các trường không phải là giá trị số
  • csv.QUOTE_NONE – Không trích dẫn bất cứ điều gì ở đầu ra

Trong hướng dẫn này, chúng tôi sẽ chỉ tập trung vào các chức năng đọc và ghi cho phép bạn chỉnh sửa, sửa đổi và thao tác dữ liệu trong tệp CSV.

Cách đọc tệp CSV trong Python

Dưới đây là các bước để đọc tệp CSV trong Python.

Bước 1) Để đọc dữ liệu từ tệp CSV, bạn phải sử dụng chức năng reader để tạo đối tượng reader.

Chức năng đọc được phát triển để lấy từng hàng của tệp và tạo danh sách tất cả các cột. Sau đó, bạn phải chọn cột mà bạn muốn chứa dữ liệu biến.

Nghe có vẻ phức tạp hơn nhiều. Chúng ta hãy nhìn vào cái này Python mã để đọc tệp CSV và chúng tôi sẽ thấy rằng làm việc với tệp csv không quá khó.

#import necessary modules
import csv
with open('X:\data.csv','rt')as f:
  data = csv.reader(f)
  for row in data:
        print(row)

Bước 2) Khi bạn thực hiện chương trình trên, kết quả sẽ là:

['Programming language; Designed by; Appeared; Extension']
['Python; Guido van Rossum; 1991; .py']
['Java; James Gosling; 1995; .java']
['C++; Bjarne Stroustrup;1983;.cpp']

Cách đọc tệp CSV vào Từ điển trong Python

Bạn cũng có thể sử dụng DictReader để đọc tệp CSV. Các kết quả được hiểu như một từ điển trong đó hàng tiêu đề là khóa và các hàng khác là giá trị.

Hãy xem xét đoạn mã sau

#import necessary modules
import csv

reader = csv.DictReader(open("file2.csv"))
for raw in reader:
    print(raw)

Kết quả của mã này là:

OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')])
OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')])
OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])

Đọc tệp CSV vào Từ điển

Và cách đọc dữ liệu từ tệp CSV này dễ dàng hơn nhiều so với phương pháp trước đó. Tuy nhiên, đây không phải là cách tốt nhất để đọc dữ liệu.

Cách ghi tệp CSV vào Python

Đây là cách ghi tệp CSV vào Python:

Khi bạn có một tập hợp dữ liệu muốn lưu trữ trong tệp CSV, bạn phải sử dụng hàm writer(). Để lặp lại dữ liệu qua các hàng (dòng), bạn phải sử dụng hàm writerow().

Hãy xem xét ví dụ sau. Chúng ta ghi dữ liệu vào tệp “writeData.csv” trong đó dấu phân cách là dấu nháy đơn.

#import necessary modules
import csv

with open('X:\writeData.csv', mode='w') as file:
    writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)

    #way to write to csv file
    writer.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension'])
    writer.writerow(['Python', 'Guido van Rossum', '1991', '.py'])
    writer.writerow(['Java', 'James Gosling', '1995', '.java'])
    writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])

Kết quả trong tệp csv là:

Programming language, Designed by, Appeared, Extension 
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup,1983,.cpp

ghi tệp CSV vào Python

Đọc tệp CSV bằng Pandas

Pandas là một thư viện mã nguồn mở cho phép bạn nhập CSV vào Python và thực hiện thao tác dữ liệu. Pandas cung cấp một cách dễ dàng để tạo, thao tác và xóa dữ liệu.

Bạn phải cài đặt thư viện pandas bằng lệnh pip install pandas . TRONG Windows, bạn sẽ thực thi lệnh này trong Dấu nhắc Lệnh khi sử dụng Linux trong Terminal.

Đọc CSV vào DataFrame của gấu trúc rất nhanh chóng và dễ dàng:

#import necessary modules
import pandas
result = pandas.read_csv('X:\data.csv')
print(result)

Kết quả của đọc CSV Panda thí dụ:

Programming language, Designed by, Appeared, Extension 
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

Thư viện rất hữu ích. Chỉ trong ba dòng mã bạn sẽ có kết quả tương tự như trước đó. Pandas biết rằng dòng đầu tiên của tên cột chứa CSV và nó sẽ tự động sử dụng chúng.

Viết tệp CSV bằng Pandas

Viết vào tệp CSV bằng Pandas cũng dễ như đọc. Ở đây bạn có thể thuyết phục trong đó. Trước tiên, bạn phải tạo DataFrame dựa trên những điều sau Python ghi vào mã CSV.

from pandas import DataFrame
C = {'Programming language': ['Python','Java', 'C++'],
        'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],
        'Appeared': ['1991', '1995', '1985'],
        'Extension': ['.py', '.java', '.cpp'],
    }
df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension'])
export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be stored
print (df)

Đây là đầu ra

Programming language, Designed by, Appeared, Extension
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

Và tệp CSV được tạo tại vị trí đã chỉ định.

Viết tệp CSV bằng Pandas

Câu Hỏi Thường Gặp

Tệp CSV (các giá trị được phân tách bằng dấu phẩy) là một tệp văn bản thuần túy lưu trữ dữ liệu dạng bảng. Mỗi dòng là một hàng, và dấu phẩy phân tách các giá trị trong mỗi cột.

Nhập mô-đun csv, mở tệp và truyền nó cho csv.reader() để lặp qua các hàng dưới dạng danh sách. Hoặc, sử dụng csv.DictReader() để đọc từng hàng dưới dạng từ điển.

Mở một tập tin ở chế độ ghi, tạo một đối tượng csv.writer(), và gọi hàm writerow() cho từng hàng hoặc writerows() cho nhiều hàng. Trình ghi sẽ tự động xử lý dấu ngoặc kép và dấu phân cách.

csv.DictReader() đọc một tệp CSV vào các từ điển có thứ tự, sử dụng hàng tiêu đề làm khóa. Điều này cho phép bạn truy cập từng giá trị theo tên cột thay vì theo chỉ mục.

Gọi hàm pandas.read_csv('file.csv'), hàm này sẽ tải tệp CSV vào một DataFrame chỉ trong một dòng lệnh. Pandas tự động sử dụng hàng đầu tiên làm tiêu đề cột.

Các trợ lý AI như GitHub Copilot tự động hoàn thành các lệnh CSV và pandas, tạo vòng lặp đọc và ghi, và đề xuất dấu phân cách hoặc tùy chọn trích dẫn phù hợp từ một mô tả ngắn.

Đúng vậy. Các công cụ hỗ trợ bởi trí tuệ nhân tạo có thể tự động hóa việc phân tích cú pháp, làm sạch và chuyển đổi dữ liệu CSV, tạo ra các pipeline pandas và thêm chức năng xử lý lỗi cho các hàng bị lỗi định dạng hoặc thiếu cột.

Sử dụng mô-đun csv tích hợp sẵn để đọc và ghi dữ liệu đơn giản và nhẹ nhàng. Chọn pandas khi bạn cần lọc, chuyển đổi hoặc phân tích các tập dữ liệu CSV lớn một cách hiệu quả.

Tóm tắt bài viết này với: