Làm việc với tệp CSV: Hướng dẫn chọn thư viện phù hợp

By JoeVu, at: 17:42 Ngày 05 tháng 10 năm 2023

Thời gian đọc ước tính: __READING_TIME__ minutes

Working with CSV Files: A Guide to Choosing the Right Library
Working with CSV Files: A Guide to Choosing the Right Library

 

1. Giới thiệu


CSV (Comma-Separated Values) là định dạng phổ biến để lưu trữ dữ liệu dạng bảng, và làm việc với chúng một cách lập trình là một nhiệm vụ thường gặp đối với các nhà phát triển và nhà phân tích dữ liệu. Bài viết này khám phá các thư viện Python khác nhau để phân tích cú pháp và thao tác các tệp CSV, hướng dẫn bạn lựa chọn thư viện phù hợp với nhu cầu cụ thể của mình.


Một ví dụ về tệp CSV là

 

first_name,last_name,address,city,state,postal_code
John,Doe,120 jefferson st.,Riverside, NJ, 08075
Jack,McGinnis,220 hobo Av.,Phila, PA,09119
"John ""Da Man""",Repici,120 Jefferson St.,Riverside, NJ,08075
Stephen,Tyler,"7452 Terrace ""At the Plaza"" road",SomeTown,SD, 91234
,Blankman,,SomeTown, SD, 00298
"Joan ""the bone"", Anne",Jet,"9th, at Terrace plc",Desert City,CO,00123

 

2. Chọn thư viện phù hợp

 

Mô-đun CSV (Tích hợp sẵn)

 

Mô-đun CSV là một mô-đun Python tích hợp sẵn cung cấp chức năng để đọc và ghi các tệp CSV. Đây là một lựa chọn nhẹ, phù hợp với các tác vụ CSV đơn giản, cung cấp các chức năng cơ bản mà không cần phụ thuộc bổ sung.

 

Pandas

 

Pandas, một thư viện thao tác dữ liệu mạnh mẽ, cũng thành thạo trong việc xử lý các tệp CSV. Nó cung cấp một giao diện cấp cao để làm việc với dữ liệu dạng bảng, làm cho nó trở thành một lựa chọn tuyệt vời cho các tập dữ liệu lớn và các tác vụ phân tích dữ liệu phức tạp.

 

csvkit

 

csvkit là một thư viện bên ngoài mở rộng chức năng của mô-đun CSV tích hợp sẵn. Nó cung cấp các tính năng bổ sung như xác thực tệp CSV, truy vấn kiểu SQL và hơn thế nữa. csvkit là một lựa chọn tuyệt vời khi bạn cần các khả năng nâng cao vượt ra ngoài các chức năng CSV cơ bản.

 

Dask

 

Dask là một thư viện tính toán song song tích hợp tốt với Pandas và được thiết kế để xử lý các tập dữ liệu lớn hơn bộ nhớ. Nó có thể hiệu quả xử lý và thao tác các tệp CSV song song, làm cho nó phù hợp với các kịch bản dữ liệu lớn.

 

3. Sử dụng thư viện: Cài đặt và các thao tác thông thường

 

Mô-đun CSV (Tích hợp sẵn)

 

Trường hợp sử dụng:

 

  • Đọc tệp CSV:
     

    import csv
    with open('example.csv', 'r') as file:
        reader = csv.reader(file)
        data = list(reader)
  • Ghi dữ liệu vào tệp CSV:

    with open('new_data.csv', 'w', newline='') as file:
        writer = csv.writer(file)
        writer.writerows(data)

 

Pandas

 

Cài đặt:

 

pip install pandas


Trường hợp sử dụng:

 

  • Đọc tệp CSV:

    import pandas as pd
    df = pd.read_csv('example.csv')
  • Ghi dữ liệu vào tệp CSV:

    df.to_csv('new_data.csv', index=False)

 

csvkit

 

Cài đặt:

 

pip install csvkit


Trường hợp sử dụng:

 

  • Đọc tệp CSV:

    csvlook example.csv
  • Ghi dữ liệu vào tệp CSV:

    csvformat -U 1 new_data.csv > formatted_data.csv

 

Dask

 

Cài đặt:

 

pip install dask


Trường hợp sử dụng:

 

  • Đọc tệp CSV:

    import dask.dataframe as dd
    df = dd.read_csv('example.csv')
  • Ghi dữ liệu vào tệp CSV:

    df.to_csv('new_data.csv', index=False, single_file=True)

 

4. Cách xử lý tệp CSV lớn

 

Xử lý các tệp CSV lớn một cách hiệu quả là một thách thức phổ biến. Dưới đây là các ví dụ sử dụng Pandas và Dask để xử lý các tệp CSV lớn:

 

Pandas

 

Trường hợp sử dụng: Đọc tệp CSV lớn theo từng đoạn:

 

import pandas as pd

chunk_size = 100000  # Điều chỉnh kích thước đoạn dựa trên bộ nhớ của hệ thống
chunks = pd.read_csv('big_data.csv', chunksize=chunk_size)

for chunk in chunks:
    # Xử lý từng đoạn theo yêu cầu
    process_chunk(chunk)

 

 

Dask

 

Trường hợp sử dụng: Xử lý song song cho các tệp CSV lớn:

import dask.dataframe as dd

df = dd.read_csv('big_data.csv')

# Thực hiện tính toán song song
result = df.groupby('column_name').mean()

# Tính toán và lấy kết quả
result.compute()

 

5. Kết luận

 

Việc lựa chọn thư viện phù hợp để làm việc với các tệp CSV phụ thuộc vào độ phức tạp của dữ liệu và các tác vụ cụ thể mà bạn cần thực hiện. Mô-đun CSV tích hợp sẵn phù hợp với các thao tác đơn giản, trong khi PandasDask cung cấp các tính năng nâng cao cho phân tích dữ liệu và xử lý các tập dữ liệu lớn. csvkit cung cấp các chức năng bổ sung vượt ra ngoài mô-đun CSV tiêu chuẩn. Hãy cân nhắc các yêu cầu của dự án để chọn thư viện phù hợp nhất với nhu cầu của bạn và quản lý hiệu quả các tệp CSV trong Python.

Tag list:
- python
- pandas
- python3
- csv writer
- csvkit
- csv handling
- csv built-in
- python csv
- csv reader
- big csv reader
- dask
- huge csv file

Theo dõi

Theo dõi bản tin của chúng tôi và không bao giờ bỏ lỡ những tin tức mới nhất.