Tại sao gấu trúc không thể đọc excel?
Với gấu trúc, thật dễ dàng để đọc các tệp Excel và chuyển đổi dữ liệu thành DataFrame. Thật không may, các tệp Excel trong thế giới thực thường được xây dựng kém. Trong những trường hợp dữ liệu nằm rải rác trên trang tính, bạn có thể cần tùy chỉnh cách đọc dữ liệu. Bài viết này sẽ thảo luận về cách sử dụng pandas và openpyxl để đọc các loại tệp Excel này và chuyển đổi rõ ràng dữ liệu thành DataFrame phù hợp để phân tích thêm Show Vấn đềHàm pandas df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])4 thực hiện công việc xuất sắc trong việc đọc bảng tính Excel. Tuy nhiên, trong trường hợp dữ liệu không phải là bảng liên tục bắt đầu từ ô A1, kết quả có thể không như bạn mong đợi Nếu bạn cố gắng đọc trong bảng tính mẫu này bằng cách sử dụng df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])5 Bạn sẽ nhận được một thứ trông giống như thế này Những kết quả này bao gồm rất nhiều cột df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])6, nhãn tiêu đề trong một hàng cũng như một số cột bổ sung mà chúng tôi không cần Giải pháp PandasGiải pháp đơn giản nhất cho tập dữ liệu này là sử dụng các đối số df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])7 và df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])8 cho df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])9. Đặc biệt, tham số df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])8 có thể rất hữu ích để kiểm soát các cột mà bạn muốn đưa vào Nếu bạn muốn làm theo các ví dụ này, tệp có trên github Đây là một phương pháp thay thế để chỉ đọc dữ liệu chúng tôi cần import pandas as pd from pathlib import Path src_file = Path.cwd() / 'shipping_tables.xlsx' df = pd.read_excel(src_file, header=1, usecols='B:F') DataFrame kết quả chỉ chứa dữ liệu chúng tôi cần. Trong ví dụ này, chúng tôi cố tình loại trừ cột ghi chú và trường ngày Logic tương đối đơn giản. df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])8 có thể chấp nhận các phạm vi Excel như df = pd.read_excel( src_file, header=1, usecols=['item_type', 'order id', 'order date', 'state', 'priority'])2 và chỉ đọc trong các cột đó. Tham số df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])7 mong đợi một số nguyên duy nhất xác định cột tiêu đề. Giá trị này được lập chỉ mục 0, vì vậy chúng tôi chuyển vào df = pd.read_excel( src_file, header=1, usecols=['item_type', 'order id', 'order date', 'state', 'priority'])4 mặc dù đây là hàng 2 trong Excel Trong một số trường hợp, chúng tôi có thể muốn xác định các cột dưới dạng danh sách các số. Trong ví dụ này, chúng ta có thể xác định danh sách các số nguyên df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5]) Cách tiếp cận này có thể hữu ích nếu bạn có một số loại mẫu số mà bạn muốn theo dõi cho một tập dữ liệu lớn (tôi. e. mọi cột thứ 3 hoặc chỉ các cột được đánh số chẵn) Pandas df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])8 cũng có thể lấy danh sách tên cột. Mã này sẽ tạo một DataFrame tương đương df = pd.read_excel( src_file, header=1, usecols=['item_type', 'order id', 'order date', 'state', 'priority']) Việc sử dụng danh sách các cột được đặt tên sẽ hữu ích nếu thứ tự cột thay đổi nhưng bạn biết rằng tên sẽ không thay đổi Cuối cùng, df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])8 có thể thực hiện chức năng có thể gọi được. Dưới đây là một ví dụ dạng dài đơn giản loại trừ các cột không có tên cũng như cột mức độ ưu tiên df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])6 Khái niệm chính cần ghi nhớ là hàm sẽ phân tích cú pháp từng cột theo tên và phải trả về một giá trị df = pd.read_excel( src_file, header=1, usecols=['item_type', 'order id', 'order date', 'state', 'priority'])7 hoặc df = pd.read_excel( src_file, header=1, usecols=['item_type', 'order id', 'order date', 'state', 'priority'])8 cho mỗi cột. Những cột được đánh giá là df = pd.read_excel( src_file, header=1, usecols=['item_type', 'order id', 'order date', 'state', 'priority'])7 sẽ được bao gồm Một cách tiếp cận khác để sử dụng hàm có thể gọi được là bao gồm biểu thức df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])60. Đây là một ví dụ mà chúng tôi muốn chỉ bao gồm một danh sách các cột được xác định. Chúng tôi chuẩn hóa tên bằng cách chuyển đổi chúng thành chữ thường để so sánh df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])1 Các hàm có thể gọi được mang lại cho chúng tôi rất nhiều sự linh hoạt để xử lý các tệp Excel lộn xộn trong thế giới thực Phạm vi và BảngTrong một số trường hợp, dữ liệu có thể bị xáo trộn nhiều hơn trong Excel. Trong ví dụ này, chúng tôi có một bảng tên là df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])61 mà chúng tôi muốn đọc. Nếu bạn phải làm việc với một tệp như thế này, thì có thể khó đọc với các tùy chọn gấu trúc mà chúng ta đã thảo luận cho đến nay Trong trường hợp này, chúng ta có thể sử dụng trực tiếp openpyxl để phân tích cú pháp tệp và chuyển đổi dữ liệu thành DataFrame của gấu trúc. Việc dữ liệu nằm trong bảng Excel có thể giúp quá trình này dễ dàng hơn một chút Sau đây là cách sử dụng openpyxl (sau khi được cài đặt) để đọc tệp Excel df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])3 Điều này tải toàn bộ sổ làm việc. Nếu chúng tôi muốn xem tất cả các trang tính df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])4 df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])5 Để truy cập trang tính cụ thể df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])6 Để xem danh sách tất cả các bảng có tên df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])7 df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])0 Khóa này tương ứng với tên mà chúng tôi đã gán trong Excel cho bảng. Bây giờ, chúng tôi truy cập vào bảng để lấy phạm vi Excel tương đương df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])1 df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])2 Điều này làm việc. Bây giờ chúng tôi biết phạm vi dữ liệu chúng tôi muốn tải. Bước cuối cùng là chuyển đổi phạm vi đó thành DataFrame của gấu trúc. Đây là một đoạn mã ngắn để lặp qua từng hàng và chuyển đổi thành DataFrame df = pd.read_excel(src_file, header=1, usecols=[1,2,3,4,5])3 Đây là DataFrame kết quả Bây giờ chúng ta có bảng sạch và có thể sử dụng để tính toán thêm Tóm lượcTrong một thế giới lý tưởng, dữ liệu chúng tôi sử dụng sẽ ở định dạng nhất quán đơn giản. Hãy xem bài báo này để có một cuộc thảo luận thú vị về các phương pháp sử dụng bảng tính hiệu quả trông như thế nào Trong các ví dụ trong bài viết này, bạn có thể dễ dàng xóa các hàng và cột để định dạng tốt hơn. Tuy nhiên, có những lúc điều này không khả thi hoặc không nên. Tin vui là pandas và openpyxl cung cấp cho chúng tôi tất cả các công cụ cần thiết để đọc dữ liệu Excel - bất kể bảng tính có trở nên điên rồ đến đâu Gấu trúc có thể đọc tệp Excel không?Chúng ta có thể sử dụng hàm read_excel() của mô-đun pandas để đọc dữ liệu tệp excel vào đối tượng DataFrame . Nếu bạn nhìn vào một bảng excel, đó là một bảng hai chiều. Đối tượng DataFrame cũng đại diện cho cấu trúc dữ liệu dạng bảng hai chiều.
Làm cách nào để đọc excel bằng gấu trúc trong Python?Cách đọc nhiều trang tính từ một tệp Excel trong Pandas? . nhập gấu trúc dưới dạng pd Sheet1=pd. read_excel('/content/Subject_Scores. xlsx', sheet_name=0) Sheet2=pd. read_excel('/content/Subject_Scores. xlsx', sheet_name=1) print("Trang tính 1. \n",Sheet1) print() print("Sheet1. \n",Trang tính 2) Tờ1. Cuộn Gấu trúc có thể đọc CSV đọc Excel không?Pandas là một gói Python mạnh mẽ và linh hoạt cho phép bạn làm việc với dữ liệu chuỗi thời gian và được gắn nhãn. Nó cũng cung cấp các phương pháp thống kê, cho phép vẽ đồ thị, v.v. Một tính năng quan trọng của Pandas là khả năng viết và đọc Excel, CSV và nhiều loại tệp khác .
Python có thể đọc các tệp xlsx không?OpenPyXL là một thư viện Python được tạo để đọc và ghi các tệp Excel 2010 xlsx/xlsm/xltx/xltm . Nó có thể đọc cả. xlsx và. xlsm, bao gồm hỗ trợ biểu đồ, đồ thị và các hình ảnh hóa dữ liệu khác. |