Liệt kê tất cả các tệp csv trong thư mục python
Hướng dẫn này là một tập hợp con nhỏ của một dự án mà tôi đã thực hiện gần đây. Nhiệm vụ ở đây là hợp nhất dữ liệu từ nhiều tệp csv thành một tệp sao cho không có thông tin nào bị mất và việc hợp nhất các cột từ tất cả các tệp được thực hiện mà không có bất kỳ sự mâu thuẫn nào Giới thiệuBạn đã bao giờ gặp trường hợp có nhiều bảng có một cột chung và phải hợp nhất chúng dựa trên khóa chính chưa? . Có, nhưng điều gì sẽ xảy ra nếu tôi nói rằng chúng ta có mỗi bảng được lưu trữ trong một tệp csv, vì vậy mỗi tệp csv là một bảng. Và có 10 csv trong 5 thư mục khác nhau tức là. 50 tệp csv trong tất cả. Nhiệm vụ ở đây là hợp nhất tất cả csv trong mỗi thư mục và tạo một csv chính để cuối cùng chúng ta sẽ có 5 tệp csv chính. Tập dữ liệu ở đây liên quan đến lưu lượng truy cập trang web Về dữ liệuHãy để tôi cung cấp cho bạn một cái nhìn nhanh về cấu trúc thư mục Năm > Lượt xem quốc gia > 10 tệp csv Tương tự, cả 4 thư mục còn lại đều có cấu trúc tương tự. Tất cả csv đều có 2 cột, một cột là chính tham số và cột còn lại là giá trị hoặc số lần truy cập mà tham số nhận được. Mỗi tệp csv đại diện cho một năm. Số hàng có thể tăng hoặc giảm và một số hàng có thể lặp lại với các năm khác nhau. Do đó, chúng tôi cần đảm bảo tại thời điểm hợp nhất không có dữ liệu nào bị mất Chúng ta có thể làm điều này bằng cách sử dụng SQL và để lại các phép nối ngoài hoặc sử dụng hàm VLookUp trong excel nhưng điều đó sẽ rất tốn thời gian. Đây, Python đến để giải cứu chúng tôi Chúng tôi sẽ tự động hóa tác vụ này với python và tạo một chức năng sẽ lấy một đầu vào duy nhất làm đường dẫn của thư mục 'Năm' và tạo một csv chính mới trong mỗi thư mục con cho chúng tôi trong một cuộc gọi. Tích tụ đủ rồi, bắt tay vào việc nào Nhập thư viện cần thiết import pandas as pd Cách tiếp cận
Chức năng của chúng tôi sẽ là một iterator. Ở đây, tôi sẽ hướng dẫn bạn qua một lần lặp lại để dễ hiểu và sau đó chúng tôi sẽ chuyển đổi nó thành một hàm động. Chúng ta sẽ sử dụng quá nhiều danh sách và vòng lặp for Bước 1 Phân tích cú pháp thông qua thư mục chính 'Năm' và lưu trữ tên của tất cả các thư mục con trong danh sách data_dir = r’E:\Year’ Bước 2 Lặp lại tất cả các tệp trong thư mục con 'Nhấp chuột' và lưu trữ đường dẫn tệp của chúng trong danh sách 'all_files' path = os.path.join(data_dir, sub_folders[0]) Bước 3 Tạo danh sách dữ liệu của tệp mới dưới dạng khung dữ liệu 'li' li = [] li[0] Nhìn thoáng qua chỉ mục đầu tiên trông như thế nào trong danh sách 'li' Bước 4 Tạo một danh sách 'năm' sẽ trích xuất tất cả các năm từ tên tệp bằng thư viện re year = [] Bước 5 Hợp nhất tất cả dữ liệu từ mỗi khung dữ liệu với nối ngoài bên trái từng cái một bắt đầu từ chỉ mục 0 và 1. Trước đó, chúng tôi sẽ thêm thay thế tất cả các giá trị trống bằng 0 trong tất cả các khung dữ liệu li[index].fillna(0) Bước 6 Hãy để chúng tôi đổi tên các cột khi tần suất được thêm vào tất cả các tên cột mới được tạo bằng phép nối left.columns = year Cuối cùng, chúng ta hãy xuất khung dữ liệu với tên tệp thích hợp trong thư mục con 'Nhấp chuột' ________số 8Như vậy là ta đã hoàn thành xuất sắc nhiệm vụ trong tay. Bây giờ chúng ta hãy đặt tất cả các đoạn mã trong một chức năng duy nhất def combine_data(data_dir): gọi hàm data_dir = r’E:\Year’ 0Cảm ơn bạn đã đọc bài viết. Vui lòng liên hệ với bất kỳ mối quan tâm, làm rõ hoặc vấn đề bản quyền nào trên kakadiya95@gmail. com. Ngoài ra, bạn có thể nhắn tin cho tôi trên trang Linkedin của tôi. Ngoài ra, hãy kiểm tra tài khoản github của tôi |