Hướng dẫn how do i read multiple csv files from a zip folder in python? - làm cách nào để đọc nhiều tệp csv từ một thư mục zip trong python?

3

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi có một số tệp CSV trong một số tệp zip trong thư mục, ví dụ: ví dụ:

  • A.Zip (chứa CSV1, CSV2, CSV3)
  • B.Zip (chứa CSV4, CSV5, CSV6)

nằm trong đường dẫn thư mục C:/Folder/, khi tôi tải các tệp CSV bình thường trong thư mục, tôi sử dụng mã sau:

import glob
import pandas as pd
files = glob.glob("C/folder/*.csv")
dfs = [pd.read_csv(f, header=None, sep=";") for f in files]

df = pd.concat(dfs,ignore_index=True)

tiếp theo là bài đăng này: Đọc các tệp Zipped CSV trong Python

Một CSV trong ZIP hoạt động như thế này:

import pandas as pd
import zipfile

zf = zipfile.ZipFile('C:/Users/Desktop/THEZIPFILE.zip') 
df = pd.read_csv(zf.open('intfile.csv'))

Bất kỳ ý tưởng làm thế nào để tối ưu hóa vòng lặp này cho tôi?

Đã hỏi ngày 27 tháng 6 năm 2019 lúc 7:44Jun 27, 2019 at 7:44

Hướng dẫn how do i read multiple csv files from a zip folder in python? - làm cách nào để đọc nhiều tệp csv từ một thư mục zip trong python?

1

Sử dụng zip.namelist() để lấy danh sách các tệp bên trong zip

Ex:

import glob
import zipfile
import pandas as pd

for zip_file in glob.glob("C/folder/*.zip"):
    zf = zipfile.ZipFile(zip_file)
    dfs = [pd.read_csv(zf.open(f), header=None, sep=";") for f in zf.namelist()]
    df = pd.concat(dfs,ignore_index=True)
    print(df)

Đã trả lời ngày 27 tháng 6 năm 2019 lúc 7:59Jun 27, 2019 at 7:59

Hướng dẫn how do i read multiple csv files from a zip folder in python? - làm cách nào để đọc nhiều tệp csv từ một thư mục zip trong python?

RakeshrakeshRakesh

79,7K17 Huy hiệu vàng72 Huy hiệu bạc109 Huy hiệu đồng17 gold badges72 silver badges109 bronze badges

2

Tôi sẽ cố gắng giải quyết nó trong hai đường chuyền. Đầu tiên, trích xuất nội dung của zipfile vào hệ thống tập tin. Pass thứ hai, đọc tất cả những CSV được trích xuất bằng phương pháp bạn đã có ở trên:

import glob
import pandas as pd
import zipfile

def extract_files(file_path):
  archive = zipfile.ZipFile(file_path, 'r') 
  unzipped_path = archive.extractall()
  return unzipped_path

zipped_files = glob.glob("C/folder/*.zip")]
file_paths = [extract_files(zf) for zf in zipped_files]

dfs = [pd.read_csv(f, header=None, sep=";") for f in file_paths]
df = pd.concat(dfs,ignore_index=True)

Đã trả lời ngày 27 tháng 6 năm 2019 lúc 7:56Jun 27, 2019 at 7:56

Hướng dẫn how do i read multiple csv files from a zip folder in python? - làm cách nào để đọc nhiều tệp csv từ một thư mục zip trong python?

Bài viết này lần đầu tiên được xuất bản trên kinh doanh-khoa học.io, và vui lòng đóng góp cho những người viết blog Python. (Bạn có thể báo cáo vấn đề về nội dung trên trang này tại đây) Bạn muốn chia sẻ nội dung của bạn trên Python-Bloggers? bấm vào đây. business-science.io , and kindly contributed to python-bloggers. (You can report issue about the content on this page here)
Want to share your content on python-bloggers? click here.

Đọc nhiều tệp CSV là một nhiệm vụ phổ biến cho một nhà khoa học dữ liệu. Trong hướng dẫn miễn phí này, chúng tôi chỉ cho bạn 3 cách để hợp lý hóa việc đọc các tệp CSV trong Python. Bạn sẽ đọc và kết hợp 15 tệp CSV bằng 3 phương pháp hàng đầu để lặp.You’ll read and combine 15 CSV Files using the top 3 methods for iteration.

Lời khuyên Python hàng tuần

Bài viết này là một phần của Python-Tips Weekly, một video hướng dẫn hai tuần một lần cho thấy bạn từng bước làm thế nào để thực hiện các nhiệm vụ mã hóa Python thông thường.

Dưới đây là các liên kết để được thiết lập. 👇

  • Nhận mã
  • Hướng dẫn YouTube

Video TutorialFollow cùng với hướng dẫn video YouTube đầy đủ của chúng tôi.Follow along with our Full YouTube Video Tutorial.

Video 5 phút này bao gồm việc đọc nhiều CSV trong Python.


Hướng dẫn how do i read multiple csv files from a zip folder in python? - làm cách nào để đọc nhiều tệp csv từ một thư mục zip trong python?
(Nhấp vào hình ảnh để chơi hướng dẫn)

Đọc 15 tệp CSV [Hướng dẫn]

Hướng dẫn miễn phí này thể hiện sức mạnh tuyệt vời của python để đọc các tệp CSV. Chúng tôi sẽ đọc 15 tệp CSV trong hướng dẫn này.15 CSV files in this tutorial.

Hướng dẫn how do i read multiple csv files from a zip folder in python? - làm cách nào để đọc nhiều tệp csv từ một thư mục zip trong python?

Trước khi chúng tôi bắt đầu, hãy lấy bảng gian lận Python

Hệ sinh thái Python lớn. Để giúp đỡ, tôi đã quản lý nhiều gói Python 80/20, những gói tôi sử dụng thường xuyên nhất để có kết quả. Chỉ cần tải xuống bảng cheat Python Ultimate Python để truy cập toàn bộ hệ sinh thái Python trong tầm tay của bạn thông qua tài liệu siêu liên kết và các bảng gian lận.80/20 Python Packages, those I use most frequently to get results. Simply Download the Ultimate Python Cheat Sheet to access the entire Python Ecosystem at your fingertips via hyperlinked documentation and cheat sheets.


Hướng dẫn how do i read multiple csv files from a zip folder in python? - làm cách nào để đọc nhiều tệp csv từ một thư mục zip trong python?
(Nhấp vào hình ảnh để tải xuống) vào hướng dẫn.

Onto the tutorial.

Thiết lập dự án

Đầu tiên, tải các thư viện. Chúng tôi sẽ nhập pandasglob.

  • Pandas: Thư viện Wrangling dữ liệu chính trong Python

  • glob: Một thư viện để định vị các đường dẫn tệp bằng cách tìm kiếm văn bản (biểu thức thông thường)

Thứ hai, sử dụng glob để trích xuất danh sách các đường dẫn tệp cho mỗi trong số 15 tệp CSV chúng ta cần đọc.

Hướng dẫn how do i read multiple csv files from a zip folder in python? - làm cách nào để đọc nhiều tệp csv từ một thư mục zip trong python?

Nhận mã.

Phương pháp 1: For-Loop

Cách phổ biến nhất để đọc lặp lại các tệp là với vòng lặp. Nó là một cách tuyệt vời cho người mới bắt đầu nhưng nó không phải là cách súc tích nhất. Chúng tôi sẽ hiển thị theo cách này trước tiên.

Hướng dẫn how do i read multiple csv files from a zip folder in python? - làm cách nào để đọc nhiều tệp csv từ một thư mục zip trong python?

Nhận mã.

Phương pháp 1: For-Loop

  1. Cách phổ biến nhất để đọc lặp lại các tệp là với vòng lặp. Nó là một cách tuyệt vời cho người mới bắt đầu nhưng nó không phải là cách súc tích nhất. Chúng tôi sẽ hiển thị theo cách này trước tiên. We do this to store our results as we make them in the for-loop.

  2. Chúng ta có thể thấy rằng điều này liên quan đến 3 bước: We read using

    import pandas as pd
    import zipfile
    
    zf = zipfile.ZipFile('C:/Users/Desktop/THEZIPFILE.zip') 
    df = pd.read_csv(zf.open('intfile.csv'))
    
    2, which returns a data frame for each path. Then we append each data frame to our list.

  3. 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 làm cho chúng trong vòng lặp. We use

    import pandas as pd
    import zipfile
    
    zf = zipfile.ZipFile('C:/Users/Desktop/THEZIPFILE.zip') 
    df = pd.read_csv(zf.open('intfile.csv'))
    
    3 to combine the list of data frames into one big data frame.

Tên tệp For-Each, đọc và nối tiếp: Chúng tôi đọc bằng cách sử dụng

import pandas as pd
import zipfile

zf = zipfile.ZipFile('C:/Users/Desktop/THEZIPFILE.zip') 
df = pd.read_csv(zf.open('intfile.csv'))
2, trả về khung dữ liệu cho mỗi đường dẫn. Sau đó, chúng tôi nối từng khung dữ liệu vào danh sách của chúng tôi. Combining data frames in lists is a common strategy. Don’t forget to use
import pandas as pd
import zipfile

zf = zipfile.ZipFile('C:/Users/Desktop/THEZIPFILE.zip') 
df = pd.read_csv(zf.open('intfile.csv'))
4 to specify row-wise combining.

Kết hợp từng khung dữ liệu: Chúng tôi sử dụng import pandas as pd import zipfile zf = zipfile.ZipFile('C:/Users/Desktop/THEZIPFILE.zip') df = pd.read_csv(zf.open('intfile.csv')) 3 để kết hợp danh sách các khung dữ liệu vào một khung dữ liệu lớn.

Pro-tip: Kết hợp các khung dữ liệu trong danh sách là một chiến lược phổ biến. Don Tiết quên sử dụng

import pandas as pd
import zipfile

zf = zipfile.ZipFile('C:/Users/Desktop/THEZIPFILE.zip') 
df = pd.read_csv(zf.open('intfile.csv'))
4 để chỉ định kết hợp hàng ngày.

Phương pháp 2: Sử dụng bản đồ

Hàm

import pandas as pd
import zipfile

zf = zipfile.ZipFile('C:/Users/Desktop/THEZIPFILE.zip') 
df = pd.read_csv(zf.open('intfile.csv'))
5 là một cách ngắn gọn hơn để lặp lại. Ưu điểm là chúng tôi không thể khởi tạo một danh sách. Tuy nhiên, nó có thể gây nhầm lẫn hơn cho người mới bắt đầu.

  1. Làm thế nào nó hoạt động: A function to iteratively apply

  2. Bản đồ có hai đối số chung:: One or more iterables that are supplied to the function in order of the functions arguments.

Hướng dẫn how do i read multiple csv files from a zip folder in python? - làm cách nào để đọc nhiều tệp csv từ một thư mục zip trong python?

Nhận mã.

Phương pháp 1: For-Loop

Cách phổ biến nhất để đọc lặp lại các tệp là với vòng lặp. Nó là một cách tuyệt vời cho người mới bắt đầu nhưng nó không phải là cách súc tích nhất. Chúng tôi sẽ hiển thị theo cách này trước tiên.

Hướng dẫn how do i read multiple csv files from a zip folder in python? - làm cách nào để đọc nhiều tệp csv từ một thư mục zip trong python?

Nhận mã.

Phương pháp 1: For-Loop

  1. Cách phổ biến nhất để đọc lặp lại các tệp là với vòng lặp. Nó là một cách tuyệt vời cho người mới bắt đầu nhưng nó không phải là cách súc tích nhất. Chúng tôi sẽ hiển thị theo cách này trước tiên. This is an anonymous function that we create on the fly with the first argument that will accept our iterable (each filename in our list of csv file paths).

  2. Chúng ta có thể thấy rằng điều này liên quan đến 3 bước: In this case, we provide our list of csv files. The map function will then iteratively supply each element to the function in succession.

  3. 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 làm cho chúng trong vòng lặp. The

    import pandas as pd
    import zipfile
    
    zf = zipfile.ZipFile('C:/Users/Desktop/THEZIPFILE.zip') 
    df = pd.read_csv(zf.open('intfile.csv'))
    
    5 function returns a map object. We can then convert this to a list using the
    import pandas as pd
    import zipfile
    
    zf = zipfile.ZipFile('C:/Users/Desktop/THEZIPFILE.zip') 
    df = pd.read_csv(zf.open('intfile.csv'))
    
    8 function.

Tên tệp For-Each, đọc và nối tiếp: Chúng tôi đọc bằng cách sử dụng

import pandas as pd
import zipfile

zf = zipfile.ZipFile('C:/Users/Desktop/THEZIPFILE.zip') 
df = pd.read_csv(zf.open('intfile.csv'))
2, trả về khung dữ liệu cho mỗi đường dẫn. Sau đó, chúng tôi nối từng khung dữ liệu vào danh sách của chúng tôi. Beginners can be confused by the “map object” that is returned. Just simply use the
import pandas as pd
import zipfile

zf = zipfile.ZipFile('C:/Users/Desktop/THEZIPFILE.zip') 
df = pd.read_csv(zf.open('intfile.csv'))
8 function to extract the results of
import pandas as pd
import zipfile

zf = zipfile.ZipFile('C:/Users/Desktop/THEZIPFILE.zip') 
df = pd.read_csv(zf.open('intfile.csv'))
5 in a list structure.

Bởi vì chúng tôi đang trả lại một danh sách, thậm chí dễ dàng hơn

import pandas as pd
import zipfile

zf = zipfile.ZipFile('C:/Users/Desktop/THEZIPFILE.zip') 
df = pd.read_csv(zf.open('intfile.csv'))
5, chúng tôi có thể sử dụng một danh sách hiểu. Sự hiểu biết danh sách là một cách hợp lý để tạo một vòng lặp trả về một danh sách. Ở đây, cách thức hoạt động của nó.List Comprehension. A list comprehension is a streamlined way of making a for-loop that returns a list. Here’s how it works.

Hướng dẫn how do i read multiple csv files from a zip folder in python? - làm cách nào để đọc nhiều tệp csv từ một thư mục zip trong python?

Nhận mã.

  1. Làm điều này: Thêm chức năng mà bạn muốn lặp lại. Tham số phải khớp với tên biến vòng lặp của bạn (tiếp theo).: Add the function that you want to iterate. The parameter must match your looping variable name (next).

  2. Đối với mỗi trong số này: Đây là tên biến vòng lặp của bạn mà bạn tạo bên trong danh sách hiểu. Mỗi trong số này là các yếu tố sẽ được truyền cho chức năng của bạn.: This is your looping variable name that you create inside of the list comprehension. Each of these are elements that will get passed to your function.

  3. Trong này: Đây là sự khác biệt của bạn. Danh sách chứa mỗi đường dẫn tệp của chúng tôi. This is your iterable. The list containing each of our file paths.

Bản tóm tắt

Ở đó bạn có nó. Bây giờ bạn đã biết cách đọc các tệp CSV bằng 3 Phương thức:

  1. For-Loops
  2. Bản đồ
  3. Danh sách hiểu

Nhưng có rất nhiều điều để học khoa học dữ liệu. Và nếu bạn giống như tôi, bạn sẽ quan tâm đến một hệ thống theo dõi nhanh sẽ thúc đẩy bạn mà không lãng phí thời gian vào thông tin mà bạn không cần.without wasting time on information you don’t need.

Giải pháp là khóa học của tôi, tự động hóa khoa học dữ liệu với Python

Tự động hóa khoa học dữ liệu với khóa học Python

Mệt mỏi vì phải vật lộn để học khoa học dữ liệu? Bị mắc kẹt trong một biển tài nguyên không bao giờ? Loại bỏ sự nhầm lẫn và tăng tốc độ học tập của bạn trong quá trình.Eliminate the confusion and speed up your learning in the process.

Các doanh nghiệp đang chuyển các quy trình thủ công sang Python để tự động hóa. Chúng tôi dạy cho bạn các kỹ năng mà các tổ chức cần ngay bây giờ.

Tìm hiểu làm thế nào trong khóa học mới của chúng tôi, Python cho tự động hóa khoa học dữ liệu. Thực hiện tự động hóa dự báo doanh nghiệp đầu cuối bằng cách sử dụng pandas,

import glob
import zipfile
import pandas as pd

for zip_file in glob.glob("C/folder/*.zip"):
    zf = zipfile.ZipFile(zip_file)
    dfs = [pd.read_csv(zf.open(f), header=None, sep=";") for f in zf.namelist()]
    df = pd.concat(dfs,ignore_index=True)
    print(df)
3 và
import glob
import zipfile
import pandas as pd

for zip_file in glob.glob("C/folder/*.zip"):
    zf = zipfile.ZipFile(zip_file)
    dfs = [pd.read_csv(zf.open(f), header=None, sep=";") for f in zf.namelist()]
    df = pd.concat(dfs,ignore_index=True)
    print(df)
4 và học Python trong quá trình này.

Để để lại một bình luận cho tác giả, xin vui lòng theo liên kết và bình luận trên blog của họ: kinh doanh-khoa học.io.leave a comment for the author, please follow the link and comment on their blog: business-science.io .


Bạn muốn chia sẻ nội dung của bạn trên Python-Bloggers? bấm vào đây.

Làm cách nào để đọc nhiều tệp CSV từ một thư mục trong Python?

Giải thích mã Ở đây, mô -đun GLOB giúp trích xuất thư mục tệp (tên tệp + tên tệp với phần mở rộng), dòng 10 Ném13: Chúng tôi tạo một loại dữ liệu đối tượng loại danh sách để giữ mọi CSV làm khung dữ liệu ở mỗi chỉ mục của danh sách đó. Dòng 15: Chúng tôi gọi PD. Phương thức Concat () để hợp nhất từng DataFrame trong danh sách theo các cột, nghĩa là Axis = 1.the glob module helps extract file directory (path + file name with extension), Lines 10–13: We create a list type object dataFrames to keep every csv as a DataFrame at each index of that list. Line 15: We call pd. concat() method to merge each DataFrame in the list by columns, that is, axis=1 .

Làm cách nào để đọc nhiều tệp CSV?

Để đọc nhiều tệp CSV hoặc tất cả các tệp từ thư mục trong r, hãy sử dụng gói dữ liệu. dữ liệu. Bảng là một thư viện của bên thứ ba do đó, để sử dụng dữ liệu.use data. table package. data. table is a third-party library hence, in order to use data.

Gấu trúc có thể đọc CSV có thể nén được không?

Bằng cách gán đối số nén trong phương thức read_csv () làm zip, thì pandas trước tiên sẽ giải nén zip và sau đó sẽ tạo dataFrame từ tệp CSV có trong tệp bị nén..

Làm cách nào để trích xuất tất cả các tệp zip từ một thư mục trong Python?

Python: Cách giải nén một tập tin |Trích xuất đơn, nhiều hoặc tất cả các tệp từ kho lưu trữ zip..
Zipfile.Extractall (path = none, thành viên = none, pwd = none) zipfile.extractall (path = none, thành viên = none, pwd = none).
từ ZipFile nhập zipfile.từ Zipfile nhập zipfile ..
Zipfile.Trích xuất (thành viên, đường dẫn = Không, PWD = Không).