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
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
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
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] Đọ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. 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. 👇 Video 5 phút này bao gồm việc đọc nhiều CSV trong Python. Hướng dẫn miễn phí này thể hiện sức mạnh tuyệt vời của
Want to share your content on
python-bloggers? click here.Lời khuyên Python hàng tuần
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.
Đọc 15 tệp CSV [Hướng dẫn]
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.
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.
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 pandas
và glob
.
Pandas
: Thư viện Wrangling dữ liệu chính trong Pythonglob
: 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.
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.
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. We do this to store our results as we make them in the for-loop.
Chúng ta có thể thấy rằng điều này liên quan đến 3 bước: We read using
2, which returns a data frame for each path. Then we append each data frame to our list.import pandas as pd import zipfile zf = zipfile.ZipFile['C:/Users/Desktop/THEZIPFILE.zip'] df = pd.read_csv[zf.open['intfile.csv']]
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
3 to combine the list of data frames into one big data frame.import pandas as pd import zipfile zf = zipfile.ZipFile['C:/Users/Desktop/THEZIPFILE.zip'] df = pd.read_csv[zf.open['intfile.csv']]
Tên tệp For-Each, đọc và nối tiếp: Chúng tôi đọc bằng cách sử dụng
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']]
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.
import pandas as pd
import zipfile
zf = zipfile.ZipFile['C:/Users/Desktop/THEZIPFILE.zip']
df = pd.read_csv[zf.open['intfile.csv']]
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.Làm thế nào nó hoạt động: A function to iteratively apply
Bản đồ có hai đối số chung:: One or more iterables that are supplied to the function in order of the functions arguments.
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.
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. 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].
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.
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
5 function returns a map object. We can then convert this to a list using theimport pandas as pd import zipfile zf = zipfile.ZipFile['C:/Users/Desktop/THEZIPFILE.zip'] df = pd.read_csv[zf.open['intfile.csv']]
8 function.import pandas as pd import zipfile zf = zipfile.ZipFile['C:/Users/Desktop/THEZIPFILE.zip'] df = pd.read_csv[zf.open['intfile.csv']]
Tên tệp For-Each, đọc và nối tiếp: Chúng tôi đọc bằng cách sử dụng
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']]
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.Nhận mã.
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].
Đố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.
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:
- For-Loops
- Bản đồ
- 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.