Làm cách nào để xem nhiều tệp csv trong python?

API hệ thống tệp gấu trúc giúp dễ dàng tải nhiều tệp được lưu trữ trong một thư mục hoặc trong các thư mục lồng nhau

Các thư viện Python khác thậm chí có thể làm cho việc này dễ dàng hơn và có thể mở rộng hơn. Hãy xem một ví dụ trên một tập dữ liệu nhỏ

Đọc CSV với chức năng hệ thống tập tin

Giả sử bạn có các tệp sau

animals/ file1.csv file2.csv

Đây là cách tải các tệp vào DataFrame của gấu trúc

import glob import os import pandas as pd all_files = glob.glob("animals/*.csv") df = pd.concat((pd.read_csv(f) for f in all_files)) print(df)

Đây là những gì được in

animal_name animal_type 0 susy sparrow 1 larry lion 0 dan dolphin 1 camila cat

Tập lệnh này tải từng tệp vào một DataFrames gấu trúc riêng biệt và sau đó nối tất cả các DataFrames riêng lẻ thành một kết quả cuối cùng

Dưới đây là cách tải các tệp vào DataFrame của gấu trúc khi các tệp không nằm trong thư mục làm việc hiện tại. Các tệp nằm trong thư mục import glob import os import pandas as pd all_files = glob.glob("animals/*.csv") df = pd.concat((pd.read_csv(f) for f in all_files)) print(df)0 trên máy của tôi

home = os.path.expanduser("~") path = f"{home}/Documents/code/coiled/coiled-datasets/data/animals/" all_files = glob.glob(path + "/*.csv") df = pd.concat((pd.read_csv(f) for f in all_files)) print(df)

Kịch bản này cho kết quả tương tự

Bạn cần chỉnh sửa tập lệnh để làm cho nó đa nền tảng. Thật tẻ nhạt khi viết logic để liệt kê các tệp khi tạo Khung dữ liệu Pandas từ nhiều tệp. Hãy thử Dask mà không yêu cầu chúng tôi viết mã danh sách tệp hoặc lo lắng về khả năng tương thích đa nền tảng

Đang tải nhiều tệp bằng Dask

Đọc các tệp vào Khung dữ liệu Dask bằng phương pháp import glob import os import pandas as pd all_files = glob.glob("animals/*.csv") df = pd.concat((pd.read_csv(f) for f in all_files)) print(df)1 của Dask

import dask.dataframe as dd ddf = dd.read_csv(f"{path}/*.csv")

Bây giờ hãy chuyển đổi Khung dữ liệu Dask thành Khung dữ liệu gấu trúc bằng phương thức import glob import os import pandas as pd all_files = glob.glob("animals/*.csv") df = pd.concat((pd.read_csv(f) for f in all_files)) print(df)2 và in nội dung

________số 8_______

Đây là những gì được in

animal_name animal_type 0 susy sparrow 1 larry lion 0 dan dolphin 1 camila cat

Dask đảm nhận thao tác liệt kê tệp và không yêu cầu bạn thực hiện thủ công. Dask giúp đọc và ghi nhiều tệp dễ dàng hơn nhiều so với gấu trúc

Lợi ích của dask

Dask cũng được thiết kế để xử lý các tập dữ liệu lớn mà không bị lỗi như pandas

Dask chia dữ liệu thành các phân vùng để có thể xử lý song song. Nó cũng cho phép thực hiện tính toán theo cách truyền phát mà không cần tải tất cả dữ liệu vào bộ nhớ cùng một lúc

Tính toán Dask có thể được mở rộng để sử dụng tất cả các lõi của một máy hoặc được mở rộng để tận dụng một cụm nhiều máy tính song song. Dask là một lựa chọn tốt bất cứ khi nào bạn gặp phải các vấn đề về quy mô liên quan đến gấu trúc

Đọc các tệp CSV lồng nhau

Giả sử bạn muốn đọc dữ liệu CSV vào DataFrame gấu trúc được lưu trữ trên đĩa như sau

fish/ files/ file1.csv more-files/ file2.csv file3.csv

Tải tất cả các tệp này vào DataFrame của gấu trúc và in kết quả

path = f"{home}/Documents/code/coiled/coiled-datasets/data/fish/" all_files = glob.glob(path + "/**/*.csv") df = pd.concat((pd.read_csv(f) for f in all_files)) print(df)

Đây là kết quả được in ra

fish_name fish_type 0 carol catfish 1 maria mackerel 0 betty bass 1 sally snapper 0 marvin marlin 1 tony tuna

import glob import os import pandas as pd all_files = glob.glob("animals/*.csv") df = pd.concat((pd.read_csv(f) for f in all_files)) print(df)3 giúp việc tìm nạp các tệp CSV được lưu trữ trong cấu trúc thư mục lồng nhau tương đối dễ dàng

Phần kết luận

Bài đăng này trình bày cách đơn giản để tải nhiều tệp CSV trong DataFrame của gấu trúc

Dask giúp tải nhiều tệp vào Dask DataFrame dễ dàng hơn, có thể dễ dàng chuyển đổi thành DataFrame gấu trúc

gấu trúc chỉ có thể xử lý các bộ dữ liệu đủ nhỏ để vừa với bộ nhớ (quy tắc ngón tay cái từ năm 2017 là dữ liệu phải nhỏ hơn 5-10 lần so với RAM). Khi bạn đang tải nhiều tệp CSV, nhiều khả năng là bạn đang làm việc với tập dữ liệu lớn hơn, điều này sẽ gây ra sự cố về bộ nhớ của gấu trúc

Khi bộ dữ liệu đủ nhỏ để vừa với bộ nhớ, gấu trúc là lựa chọn tốt nhất. Nếu bạn bắt đầu gặp vấn đề về bộ nhớ hoặc muốn bản phân tích của bạn chạy nhanh hơn với tính toán song song, hãy thử mở rộng quy mô với Dask

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 mà không cần gấu trúc?

Thư viện tích hợp sẵn của CSV Python có thể được sử dụng để đọc các tệp csv mà không cần sử dụng gấu trúc. Ở đây chúng ta đang sử dụng hàm reader() để đọc dữ liệu từ tệp . Mặc dù load_csv() là một chức năng hữu ích, nhưng nó có một số hạn chế. Trong khi đọc tệp, nó không xử lý các khoảng trống/hàng.

Làm cách nào tôi có thể đọc nhiều tệp CSV trong gấu trúc?

Trong bài viết này, chúng ta sẽ xem cách đọc tất cả các tệp CSV trong một thư mục vào một khung dữ liệu Pandas duy nhất. Tác vụ có thể được thực hiện bằng cách trước tiên tìm tất cả các tệp CSV trong một thư mục cụ thể bằng phương pháp glob() và sau đó đọc tệp bằng cách sử dụng pandas. read_csv() và sau đó hiển thị nội dung

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

Một phương pháp là chuyển đường dẫn của thư mục vào một biến rồi liệt kê tất cả các tệp trong thư mục đó . Mặt khác, nếu bạn muốn đọc các tệp từ cùng thư mục với tệp ipynb của mình, bạn có thể sử dụng mã bên dưới. Phương pháp thứ ba là sử dụng hàm global() để chỉ liệt kê các tệp csv từ thư mục làm việc.

Chủ đề