Hướng dẫn python read excel file without opening - python đọc tệp excel mà không cần mở
Xem thảo luận Show
Cải thiện bài viết Lưu bài viết Xem thảo luận Cải thiện bài viết Lưu bài viết Đọc Bàn luận pip install xlrd Người ta có thể lấy thông tin từ bảng tính. Đọc, viết hoặc sửa đổi dữ liệu có thể được thực hiện trong Python có thể được thực hiện bằng cách sử dụng các phương thức khác nhau. Ngoài ra, người dùng có thể phải đi qua các trang khác nhau và truy xuất dữ liệu dựa trên một số tiêu chí hoặc sửa đổi một số hàng và cột và làm rất nhiều công việc. Ở đây, chúng tôi sẽ thấy các phương pháp khác nhau để đọc tệp Excel của chúng tôi. Mô -đun cần thiếtTệp đầu vào: & NBSP; Python3Phương pháp 1: Đọc tệp Excel bằng Python & NBSP; sử dụng gấu trúc Trong phương pháp này, trước tiên chúng tôi sẽ nhập mô -đun Pandas sau đó chúng tôi sẽ sử dụng gấu trúc để đọc tệp Excel của chúng tôi. Bạn có thể đọc thêm các hoạt động bằng tệp Excel bằng Pandas trong bài viết này. Bấm vào đây Result: ['Name Age Stream Percentage', '0 Ankit 18 Math 95', '1 Rahul 19 Science 90', '2 Shaurya 20 Commerce 85', '3 Aishwarya 18 Math 80', '4 Priyanka 19 Science 75', None]8 Result: ['Name Age Stream Percentage', '0 Ankit 18 Math 95', '1 Rahul 19 Science 90', '2 Shaurya 20 Commerce 85', '3 Aishwarya 18 Math 80', '4 Priyanka 19 Science 75', None]9 Output: Result: ['Name Age Stream Percentage', '0 Ankit 18 Math 95', '1 Rahul 19 Science 90', '2 Shaurya 20 Commerce 85', '3 Aishwarya 18 Math 80', '4 Priyanka 19 Science 75', None]1 Result: ['Name Age Stream Percentage', '0 Ankit 18 Math 95', '1 Rahul 19 Science 90', '2 Shaurya 20 Commerce 85', '3 Aishwarya 18 Math 80', '4 Priyanka 19 Science 75', None]2 Reading an excel file using Python using openpyxlResult: ['Name Age Stream Percentage', '0 Ankit 18 Math 95', '1 Rahul 19 Science 90', '2 Shaurya 20 Commerce 85', '3 Aishwarya 18 Math 80', '4 Priyanka 19 Science 75', None]3 Result: ['Name Age Stream Percentage', '0 Ankit 18 Math 95', '1 Rahul 19 Science 90', '2 Shaurya 20 Commerce 85', '3 Aishwarya 18 Math 80', '4 Priyanka 19 Science 75', None]4 Result: ['Name Age Stream Percentage', '0 Ankit 18 Math 95', '1 Rahul 19 Science 90', '2 Shaurya 20 Commerce 85', '3 Aishwarya 18 Math 80', '4 Priyanka 19 Science 75', None]5 Result: ['Name Age Stream Percentage', '0 Ankit 18 Math 95', '1 Rahul 19 Science 90', '2 Shaurya 20 Commerce 85', '3 Aishwarya 18 Math 80', '4 Priyanka 19 Science 75', None]6 Result: ['Name Age Stream Percentage', '0 Ankit 18 Math 95', '1 Rahul 19 Science 90', '2 Shaurya 20 Commerce 85', '3 Aishwarya 18 Math 80', '4 Priyanka 19 Science 75', None]7dataframe.active has been created in the script to read the values of the max_row and the max_column properties. These values are used in the loops to read the content of the Books2.xlsx file. You can read other operations using openpyxl in this article. Python3Phương pháp 2: Đọc tệp Excel bằng Python & NBSP; sử dụng OpenPyXL Hàm load_workbook () mở tệp books.xlsx để đọc. Tệp này được truyền như một đối số cho chức năng này. Đối tượng của dataFrame.Active đã được tạo trong tập lệnh để đọc các giá trị của các thuộc tính MAX_ROW và MAX_COLUMN. Các giá trị này được sử dụng trong các vòng lặp để đọc nội dung của tệp Books2.xlsx. Bạn có thể đọc các hoạt động khác bằng OpenPyXL trong bài viết này. Result: ['Name Age Stream Percentage', '0 Ankit 18 Math 95', '1 Rahul 19 Science 90', '2 Shaurya 20 Commerce 85', '3 Aishwarya 18 Math 80', '4 Priyanka 19 Science 75', None]1 import pandas as pd1 import pandas as pd2 Result: ['Name Age Stream Percentage', '0 Ankit 18 Math 95', '1 Rahul 19 Science 90', '2 Shaurya 20 Commerce 85', '3 Aishwarya 18 Math 80', '4 Priyanka 19 Science 75', None]4 import pandas as pd4 import pandas as pd5 Result: ['Name Age Stream Percentage', '0 Ankit 18 Math 95', '1 Rahul 19 Science 90', '2 Shaurya 20 Commerce 85', '3 Aishwarya 18 Math 80', '4 Priyanka 19 Science 75', None]7 Result: ['Name Age Stream Percentage', '0 Ankit 18 Math 95', '1 Rahul 19 Science 90', '2 Shaurya 20 Commerce 85', '3 Aishwarya 18 Math 80', '4 Priyanka 19 Science 75', None]3 Result: ['Name Age Stream Percentage', '0 Ankit 18 Math 95', '1 Rahul 19 Science 90', '2 Shaurya 20 Commerce 85', '3 Aishwarya 18 Math 80', '4 Priyanka 19 Science 75', None]4 import pandas as pd9 start = time.time()4 Result: ['Name Age Stream Percentage', '0 Ankit 18 Math 95', '1 Rahul 19 Science 90', '2 Shaurya 20 Commerce 85', '3 Aishwarya 18 Math 80', '4 Priyanka 19 Science 75', None]8 start = time.time()6 Output: start = time.time()df = pd.read_excel(“Dummy 0.xlsx”)for file_number in range(1,10): df.append(pd.read_excel(f”Dummy {file_number}.xlsx”))end = time.time()print(“Excel:”, end — start)>> Excel: 53.40 start = time.time()df = pd.read_excel(“Dummy 0.xlsx”)for file_number in range(1,10): df.append(pd.read_excel(f”Dummy {file_number}.xlsx”))end = time.time()print(“Excel:”, end — start)>> Excel: 53.41start = time.time()df = pd.read_excel(“Dummy 0.xlsx”)for file_number in range(1,10): df.append(pd.read_excel(f”Dummy {file_number}.xlsx”))end = time.time()print(“Excel:”, end — start)>> Excel: 53.42 start = time.time()df = pd.read_excel(“Dummy 0.xlsx”)for file_number in range(1,10): df.append(pd.read_excel(f”Dummy {file_number}.xlsx”))end = time.time()print(“Excel:”, end — start)>> Excel: 53.43start = time.time()df = pd.read_excel(“Dummy 0.xlsx”)for file_number in range(1,10): df.append(pd.read_excel(f”Dummy {file_number}.xlsx”))end = time.time()print(“Excel:”, end — start)>> Excel: 53.44start = time.time()df = pd.read_excel(“Dummy 0.xlsx”)for file_number in range(1,10): df.append(pd.read_excel(f”Dummy {file_number}.xlsx”))end = time.time()print(“Excel:”, end — start)>> Excel: 53.45start = time.time()df = pd.read_excel(“Dummy 0.xlsx”)for file_number in range(1,10): df.append(pd.read_excel(f”Dummy {file_number}.xlsx”))end = time.time()print(“Excel:”, end — start)>> Excel: 53.46 Reading an excel file using Python using Xlwingsstart = time.time()7 start = time.time()0 start = time.time()9 start = time.time()2 start = time.time()1 start = time.time()2 start = time.time()3 Python3Phương pháp 3: Đọc tệp Excel bằng Python & NBSP; sử dụng XLWings XLWings có thể được sử dụng để chèn dữ liệu vào tệp Excel tương tự như đọc từ tệp Excel. Dữ liệu có thể được cung cấp dưới dạng danh sách hoặc một đầu vào duy nhất cho một ô nhất định hoặc lựa chọn các ô. & NBSP; bạn có thể đọc các hoạt động khác bằng XLWings trong bài viết này. Result: ['Name Age Stream Percentage', '0 Ankit 18 Math 95', '1 Rahul 19 Science 90', '2 Shaurya 20 Commerce 85', '3 Aishwarya 18 Math 80', '4 Priyanka 19 Science 75', None]1 start = time.time()8 Result: ['Name Age Stream Percentage', '0 Ankit 18 Math 95', '1 Rahul 19 Science 90', '2 Shaurya 20 Commerce 85', '3 Aishwarya 18 Math 80', '4 Priyanka 19 Science 75', None]8 start = time.time()4 start = time.time()5 start = time.time()6 Output: Result: ['Name Age Stream Percentage', '0 Ankit 18 Math 95', '1 Rahul 19 Science 90', '2 Shaurya 20 Commerce 85', '3 Aishwarya 18 Math 80', '4 Priyanka 19 Science 75', None] start = time.time()9 Result: ['Name Age Stream Percentage', '0 Ankit 18 Math 95', '1 Rahul 19 Science 90', '2 Shaurya 20 Commerce 85', '3 Aishwarya 18 Math 80', '4 Priyanka 19 Science 75', None]4 start = time.time()1 import pandas as pd5 start = time.time()3 start = time.time()4 start = time.time()5 Có ý nghĩa về dữ liệu lớnTrong bài viết này, tôi sẽ chỉ cho bạn năm cách để tải dữ liệu trong Python. Đạt được tốc độ 3 bậc độ lớn.Nguồn: https://www.hippopx.com/, miền công cộngLà người dùng Python, tôi sử dụng các tệp Excel để tải/lưu trữ dữ liệu vì những người kinh doanh muốn chia sẻ dữ liệu ở định dạng Excel hoặc CSV. Thật không may, Python đặc biệt chậm với các tệp Excel. Trong bài viết này, tôi sẽ chỉ cho bạn năm cách để tải dữ liệu trong Python. Cuối cùng, chúng tôi sẽ đạt được tốc độ 3 bậc độ lớn. Nó sẽ là sét nhanh.
Thiết lập thử nghiệmHãy để tưởng tượng rằng chúng tôi muốn tải 10 tệp excel với 20000 hàng và 25 cột (tổng cộng khoảng 70MB). Đây là một trường hợp đại diện mà bạn muốn tải dữ liệu giao dịch từ ERP (SAP) sang Python để thực hiện một số phân tích. Hãy để tập trung vào dữ liệu giả này và nhập các thư viện cần thiết (chúng tôi sẽ thảo luận về Pickle và Joblib sau đó trong bài viết). import pandas as pd 5 cách tải dữ liệu trong PythonÝ tưởng #1: Tải tệp Excel trong PythonHãy bắt đầu với một cách đơn giản để tải các tệp này. Chúng tôi sẽ tạo ra một bản dữ liệu gấu trúc đầu tiên và sau đó nối từng tệp excel vào nó. start = time.time()A Cách đơn giản để nhập các tệp Excel trong Python. Phải mất khoảng 50 giây để chạy. Khá chậm. Ý tưởng #2: Sử dụng CSVS thay vì các tệp ExcelBây giờ, hãy tưởng tượng rằng chúng tôi đã lưu các tệp này dưới dạng .csv (chứ không phải là .xlsx) khỏi ERP/System/SAP của chúng tôi. start = time.time()Importing các tệp CSV trong Python nhanh hơn 100 lần so với các tệp Excel. Bây giờ chúng ta có thể tải các tệp này trong 0,63 giây. Điều đó nhanh hơn gần 10 lần! Python tải các tệp CSV nhanh hơn 100 lần so với các tệp Excel. Sử dụng CSV. Con: Các tệp CSV gần như luôn luôn lớn hơn các tệp .xlsx. Trong ví dụ này, các tệp .csv là 9,5 MB, trong khi .xlsx là 6,4MB.: csv files are nearly always bigger than .xlsx files. In this example .csv files are 9.5MB, whereas .xlsx are 6.4MB. Ý tưởng #3: Tạo ra các gấu trúc thông minh hơnChúng ta có thể tăng tốc quá trình của mình bằng cách thay đổi cách chúng ta tạo các khung dữ liệu gấu trúc của mình. Thay vì nối thêm từng tệp vào một dữ liệu hiện có,
start = time.time()Một cách thông minh hơn để nhập các tệp CSV trong Python Chúng tôi giảm thời gian một vài phần trăm. Dựa trên kinh nghiệm của tôi, thủ thuật này sẽ trở nên hữu ích khi bạn đối phó với các khung dữ liệu lớn hơn (DF >> 100MB). Ý tưởng #4: Nhập khẩu CSV song song với joblibChúng tôi muốn tải 10 tệp trong Python. Thay vì tải từng tệp một, tại sao không tải tất cả, cùng một lúc, song song?one by one, why not loading them all, at once, in parallel? Chúng ta có thể làm điều này một cách dễ dàng bằng cách sử dụng joblib. start = time.time()Import Các tệp CSV trong Python song song bằng cách sử dụng joblib. Đó là gần gấp đôi so với phiên bản lõi đơn. Tuy nhiên, theo nguyên tắc chung, đừng hy vọng sẽ tăng tốc các quy trình của bạn gấp tám lần bằng cách sử dụng 8 lõi (ở đây, tôi đã tăng tốc X2 bằng cách sử dụng 8 lõi trên không khí Mac bằng chip M1 mới). Đơn giản hóa trong Python với joblibJoblib là một thư viện Python đơn giản cho phép bạn chạy một hàm trong //. Trong thực tế, Joblib hoạt động như một danh sách hiểu. Ngoại trừ mỗi lần lặp được thực hiện bởi một luồng khác nhau. Đây là một ví dụ. def loop(file_number):Think như joblib như một danh sách thông minh hiểu. Ý tưởng #5: Sử dụng các tệp PickleBạn có thể đi (nhiều) nhanh hơn bằng cách lưu trữ dữ liệu trong các tệp Pickle - một định dạng cụ thể được sử dụng bởi Python - thay vì các tệp .csv. Con: Bạn đã thắng được có thể mở một tệp Pickle theo cách thủ công và xem những gì trong đó.: you won’t be able to manually open a pickle file and see what’s in it. start = time.time() Chúng tôi chỉ cắt giảm thời gian chạy xuống 80%! Nói chung, hoạt động nhanh hơn nhiều với các tệp Pickle so với các tệp CSV. Nhưng, mặt khác, các tệp dưa chua thường có nhiều khoảng trống hơn trên ổ đĩa của bạn (không phải trong ví dụ cụ thể này). Trong thực tế, bạn sẽ không thể trích xuất dữ liệu từ một hệ thống trực tiếp trong các tệp Pickle. Tôi sẽ khuyên bạn nên sử dụng dưa chua trong hai trường hợp sau:
Phần thưởng: Tải các tệp Excel song songHãy để tưởng tượng rằng bạn đã nhận được các tệp Excel và bạn không có lựa chọn nào khác ngoài việc tải chúng như vậy. Bạn cũng có thể sử dụng Joblib để song song hóa điều này. So với mã Pickle của chúng tôi từ trên cao, chúng tôi chỉ cần cập nhật chức năng vòng lặp.only need to update the loop function. start = time.time()cách tải các tệp Excel bằng cách sử dụng song song hóa trong Python. Chúng tôi có thể giảm 70% thời gian tải (từ 50 giây xuống còn 13 giây). Bạn cũng có thể sử dụng vòng lặp này để tạo các tệp dưa chua một cách nhanh chóng. Vì vậy, lần tới khi bạn tải các tệp này, bạn sẽ có thể đạt được thời gian tải nhanh sét. Result: ['Name Age Stream Percentage', '0 Ankit 18 Math 95', '1 Rahul 19 Science 90', '2 Shaurya 20 Commerce 85', '3 Aishwarya 18 Math 80', '4 Priyanka 19 Science 75', None]0 Tóm tắt lạiBằng cách tải các tệp pickle song song, chúng tôi đã giảm thời gian tải từ 50 giây xuống dưới một phần mười giây.
Tiền thưởng #2: song song nhanh hơn 4 lầnJoblib cho phép thay đổi phụ trợ song song để loại bỏ một số chi phí. Bạn có thể làm điều này bằng cách cho ưu tiên = Chủ đề "để song song. Sử dụng ưu tiên = Chủ đề trực tuyến sẽ cho phép bạn chạy quy trình của mình thậm chí nhanh hơn.Chúng tôi có được tốc độ khoảng 0,0096 giây (hơn 50 lần chạy với MacBook Air 2021). Sử dụng ưu tiên = Chủ đề trực tuyến với CSV và Excel song song cho các kết quả sau. Như bạn có thể thấy bằng cách sử dụng phần phụ trợ của chủ đề trực tuyến với điểm số kém hơn khi đọc các tệp Excel. Nhưng với hiệu suất đáng kinh ngạc với Pickles (phải mất 50 giây để tải các tệp Excel từng cái một và chỉ 0,01 giây để tải dữ liệu đọc các tệp Pickles trong //). Hãy để kết nối trên LinkedIn!Thông tin về các Tác giảNicolas Vandeput là một nhà khoa học dữ liệu chuỗi cung ứng chuyên về dự báo nhu cầu và tối ưu hóa hàng tồn kho. Ông thành lập công ty tư vấn của mình Supchains vào năm 2016 và đồng sáng lập SKU Science-một nền tảng dự báo nhu cầu nhanh, đơn giản và giá cả phải chăng-vào năm 2018. Đam mê giáo dục, Nicolas vừa là người học và thích giảng dạy tại các trường đại học: ông đã dạy dự báo và Tối ưu hóa hàng tồn kho cho sinh viên chính kể từ năm 2014 tại Brussels, Bỉ. Từ năm 2020, ông cũng đang dạy cả hai môn học tại Centralesupelec, Paris, Pháp. Ông đã xuất bản Khoa học dữ liệu để dự báo chuỗi cung ứng vào năm 2018 (Phiên bản thứ 2 năm 2021) và Tối ưu hóa hàng tồn kho: Mô hình và mô phỏng vào năm 2020.icolas Vandeput is a supply chain data scientist specialized in demand forecasting and inventory optimization. He founded his consultancy company SupChains in 2016 and co-founded SKU Science — a fast, simple, and affordable demand forecasting platform — in 2018. Passionate about education, Nicolas is both an avid learner and enjoys teaching at universities: he has taught forecasting and inventory optimization to master students since 2014 in Brussels, Belgium. Since 2020 he is also teaching both subjects at CentraleSupelec, Paris, France. He published Data Science for Supply Chain Forecasting in 2018 (2nd edition in 2021) and Inventory Optimization: Models and Simulations in 2020. Làm cách nào để mở một tệp excel mà không cần mở nó?Bạn không thể đọc Excel mà không có lệnh bảng tính mở. Bạn có thể thử chuyển đổi Excel thành CSV và sau đó đọc CSV.converting excel to csv and then read the csv.
Làm cách nào để đọc một tệp excel trong Python?Đọc một tệp excel Chức năng read_excel của thư viện gấu trúc được sử dụng đọc nội dung của một tệp excel vào môi trường Python dưới dạng dữ liệu gấu trúc.Hàm có thể đọc các tệp từ HĐH bằng cách sử dụng đường dẫn thích hợp đến tệp.Theo mặc định, chức năng sẽ đọc Sheet1.The read_excel function of the pandas library is used read the content of an Excel file into the python environment as a pandas DataFrame. The function can read the files from the OS by using proper path to the file. By default, the function will read Sheet1.
Làm cách nào để mở và đọc một tệp excel trong Python?Phương pháp 2: Đọc một tệp excel bằng Python bằng cách sử dụng chức năng OpenPyXL the Load_Workbook () Mở các cuốn sách.Tệp XLSX để đọc.Tệp này được truyền như một đối số cho chức năng này.Đối tượng của DataFrame.The load_workbook() function opens the Books. xlsx file for reading. This file is passed as an argument to this function. The object of the dataframe.
Làm cách nào để tự động mở một tệp excel trong Python?Để làm việc trên trang tính excel này, chúng tôi sẽ sử dụng thư viện OpenPyXL.Tạo một thư mục trong thư mục của bạn, đặt tên cho nó và cài đặt gói OpenPyXL bằng cách thực thi lệnh sau trong thiết bị đầu cuối của bạn.Bây giờ chúng tôi có thể nhập gói này để làm việc trên bảng tính của chúng tôi.Trước đó, thêm bảng tính trong thư mục dự án của bạn.use a library openpyxl. Create a folder in your directory, give it a name and install the openpyxl package by executing the following command in your terminal. Now we can import this package to work on our spreadsheet. Before that add the spreadsheet in your project folder. |