Python xử lý nhiều tệp CSV như thế nào?

Vì khóa học này đang được phát hành dần dần, bất cứ khi nào một bài báo và video mới được phát hành, sau khi git nhân bản kho lưu trữ ban đầu. Bạn sẽ cần chạy lệnh này trong dòng lệnh/thiết bị đầu cuối của mình [từ thư mục gốc của khóa học]

git pull origin master

Điều này sẽ lấy mọi thay đổi gần đây đã được thực hiện trên github. phiên bản com của khóa học và sẽ cho phép bạn dễ dàng nhận được nội dung mới khi nó được thêm vào

Kết quả học tập

  • Để tìm hiểu những gì pd. phương thức concat[] là gì và nó hoạt động như thế nào
  • Tìm hiểu cách kết hợp nhiều tệp csv bằng Pandas

Đầu tiên, giả sử rằng chúng ta có 5, 10 hoặc 100. tệp csv. Kết hợp tất cả những thứ này bằng tay có thể cực kỳ mệt mỏi và chắc chắn xứng đáng được tự động hóa. Do đó, trong bài tập hôm nay, chúng ta sẽ kết hợp nhiều tệp csv chỉ trong 8 dòng mã

Đối với hướng dẫn này, tôi đã chuẩn bị 5 trang hàng đầu. báo cáo csv từ Ahrefs bạn có thể tìm thấy trong thư mục sau


'data/pbpython.com-top-pages-by-traffic-subdomains-US-17-May-2020_20-24-30-2c4e06e2ea39cce8b2f514e24c929e51.csv'
'data/machinelearningmastery.com-top-pages-by-traffic-subdomains-US-17-May-2020_20-25-38-b4088b6c6c987653748b10c0543a5713.csv'

Một trong những vấn đề với việc tự động phát hiện tệp csv là tên được tạo động. Vì vậy, chúng tôi sẽ sử dụng. csv và gói python có tên glob để tự động phát hiện tất cả các tệp kết thúc bằng a. tên csv trong một thư mục làm việc cụ thể

Nhập gói và đặt thư mục làm việc

Bạn sẽ cần thay đổi “/directory” thành thư mục cụ thể của mình

import os
import glob
import pandas as pd
# os.chdir["/directory"]

Bằng cách viết pwd trong dòng lệnh, chúng ta có thể xác định đường dẫn tệp chính xác mà trang đầu Ahrefs này. tệp csv được đặt trong


pwd
/Users/jamesphoenix/Desktop/Imran_And_James_Projects/Python_For_SEO/2_bulk_csv_operations/data

Bây giờ chúng ta hãy di chuyển vào thư mục làm việc mong muốn của chúng ta, nơi chứa các tệp csv

os.chdir["/Users/jamesphoenix/Desktop/Imran_And_James_Projects/Python_For_SEO/2_bulk_csv_operations/data"]

Bây giờ chúng ta hãy chạy. tôi và. pwd chỉ để cho thấy rằng chúng tôi đã thay đổi thư mục

!ls 
!pwd

tiền boa. sử dụng. trước khi lệnh linux cho phép bạn chạy các lệnh unix/linux trong tệp sổ ghi chép jupyter


!pwd
/Users/jamesphoenix/Desktop/Imran_And_James_Projects/Python_For_SEO/2_bulk_csv_operations/data

!ls 
hackernoon.com-top-pages-by-traffic-subdomains-US-17-May-2020_20-20-38-3c2d0502092ca7b22c9527c370526f6b.csv
machinelearningmastery.com-top-pages-by-traffic-subdomains-US-17-May-2020_20-25-38-b4088b6c6c987653748b10c0543a5713.csv
pbpython.com-top-pages-by-traffic-subdomains-US-17-May-2020_20-24-30-2c4e06e2ea39cce8b2f514e24c929e51.csv
towardsdatascience.com-top-pages-by-traffic-subdomains-US-17-May-2020_20-15-48-03e00fb8d3976a642dd2db330422cef7.csv
www.datacamp.com-top-pages-by-traffic-subdomains-US-17-May-2020_20-21-48-821c6875ceb05705bce7e0a5a032d622.csv

Bước 2. Sử dụng toàn cầu để khớp với mẫu ‘. csv'

Bây giờ chúng ta sẽ khớp mẫu tệp [‘. csv’] trong tất cả các tệp nằm trong thư mục làm việc hiện tại

file_extension = '.csv'
all_filenames = [i for i in glob.glob[f"*{file_extension}"]]

print[f"These are all of the filenames ending in .csv {all_filenames}."]
These are all of the filenames ending in .csv ['hackernoon.com-top-pages-by-traffic-subdomains-US-17-May-2020_20-20-38-3c2d0502092ca7b22c9527c370526f6b.csv', 'machinelearningmastery.com-top-pages-by-traffic-subdomains-US-17-May-2020_20-25-38-b4088b6c6c987653748b10c0543a5713.csv', 'pbpython.com-top-pages-by-traffic-subdomains-US-17-May-2020_20-24-30-2c4e06e2ea39cce8b2f514e24c929e51.csv', 'towardsdatascience.com-top-pages-by-traffic-subdomains-US-17-May-2020_20-15-48-03e00fb8d3976a642dd2db330422cef7.csv', 'www.datacamp.com-top-pages-by-traffic-subdomains-US-17-May-2020_20-21-48-821c6875ceb05705bce7e0a5a032d622.csv'].

Bước 3. Hãy kết hợp tất cả các tệp trong danh sách và xuất dưới dạng CSV

Trong mã bên dưới, chúng tôi sẽ đọc tất cả csv và sau đó sẽ sử dụng pd. phương thức concat[] để xếp chồng mọi khung dữ liệu lên nhau

Nhưng trước khi chúng tôi làm điều đó, hãy đảm bảo rằng chúng tôi có thể nhận được một kết quả trong khung dữ liệu pandas bằng cách thêm mã hóa thích hợp

  • UTF-16 [Đây là loại mã hóa cụ thể]
  • \t [dữ liệu được phân định bằng tab]

'data/pbpython.com-top-pages-by-traffic-subdomains-US-17-May-2020_20-24-30-2c4e06e2ea39cce8b2f514e24c929e51.csv'
'data/machinelearningmastery.com-top-pages-by-traffic-subdomains-US-17-May-2020_20-25-38-b4088b6c6c987653748b10c0543a5713.csv'
0

'data/pbpython.com-top-pages-by-traffic-subdomains-US-17-May-2020_20-24-30-2c4e06e2ea39cce8b2f514e24c929e51.csv'
'data/machinelearningmastery.com-top-pages-by-traffic-subdomains-US-17-May-2020_20-25-38-b4088b6c6c987653748b10c0543a5713.csv'
1

'data/pbpython.com-top-pages-by-traffic-subdomains-US-17-May-2020_20-24-30-2c4e06e2ea39cce8b2f514e24c929e51.csv'
'data/machinelearningmastery.com-top-pages-by-traffic-subdomains-US-17-May-2020_20-25-38-b4088b6c6c987653748b10c0543a5713.csv'
2

'data/pbpython.com-top-pages-by-traffic-subdomains-US-17-May-2020_20-24-30-2c4e06e2ea39cce8b2f514e24c929e51.csv'
'data/machinelearningmastery.com-top-pages-by-traffic-subdomains-US-17-May-2020_20-25-38-b4088b6c6c987653748b10c0543a5713.csv'
3

Bây giờ, hãy phân tích dòng mã trên làm gì, trước tiên, chúng ta lặp qua tất cả các tên tệp và gán từng tên một cho biến f. Sau đó, mỗi tệp csv được đọc và chuyển đổi thành khung dữ liệu gấu trúc với

Python quản lý tệp CSV như thế nào?

Tệp CSV có thể được xử lý theo nhiều cách trong Python. .
Nhập thư viện csv. nhập csv
Mở tệp CSV. Các. .
Sử dụng tệp csv. đối tượng reader để đọc tệp CSV. csvreader = csv. người đọc [tập tin]
Trích xuất tên trường. Tạo một danh sách trống gọi là tiêu đề. .
Trích xuất các hàng/bản ghi. .
Đóng tệp

Python hoạt động như thế nào với các tệp CSV lớn?

read_csv[chunksize] Một cách để xử lý các tệp lớn là đọc các mục trong các đoạn có kích thước hợp lý, các mục này được đọc vào bộ nhớ và được xử lý trước khi đọc đoạn tiếp theo< . Chúng ta có thể sử dụng tham số chunk size để chỉ định kích thước của chunk, là số dòng. . We can use the chunk size parameter to specify the size of the chunk, which is the number of lines.

Bạn có thể mở hai tệp CSV bằng Python không?

Python cung cấp khả năng mở cũng như làm việc với nhiều tệp cùng lúc .

Làm cách nào để đọc nhiều tệp csv trong Python bằng vòng lặp?

Phương pháp 1. Vòng lặp For .
Khởi tạo một danh sách trống. Chúng tôi làm điều này để lưu trữ kết quả của chúng tôi khi chúng tôi thực hiện chúng trong vòng lặp for
Cho-Mỗi tên tệp, đọc và nối thêm. Chúng tôi đọc sử dụng pd. read_csv[] , trả về một khung dữ liệu cho mỗi đường dẫn. .
Kết hợp từng Khung dữ liệu. chúng tôi sử dụng p

Chủ Đề