Làm thế nào để pandas đọc các tập tin excel trong máy tính xách tay jupyter?

Từ những gì tôi đã thấy cho đến nay, CSV dường như là định dạng phổ biến nhất để lưu trữ dữ liệu giữa các nhà khoa học dữ liệu. Và điều đó có thể hiểu được, nó hoàn thành công việc và là một định dạng khá đơn giản;

Nhưng không phải lúc nào bạn cũng có thể tìm thấy dữ liệu mình cần ở định dạng CSV. Đôi khi định dạng có sẵn duy nhất có thể là tệp Excel. Ví dụ, tập dữ liệu này trên ons. chính phủ. uk về tội phạm ở Anh và xứ Wales, chỉ ở định dạng xlsx;

Đọc tệp Excel

Cách đơn giản nhất để đọc tệp Excel vào khung dữ liệu gấu trúc là sử dụng hàm sau (giả sử bạn đã làm import pandas as pd)

df = pd.read_excel(‘path_to_excel_file’, sheet_name=’…’)

Trong đó sheet_name có thể là tên của trang tính mà chúng tôi muốn đọc, đó là chỉ mục hoặc danh sách có tất cả các trang tính mà chúng tôi muốn đọc; . tên trang tính hoặc chỉ mục. Nếu chúng tôi muốn tất cả các trang tính, chúng tôi có thể sử dụng sheet_name=None. Trong trường hợp chúng tôi muốn đọc nhiều trang tính hơn, chúng sẽ được trả về dưới dạng từ điển khung dữ liệu. Các khóa của một từ điển như vậy sẽ là chỉ mục hoặc tên của trang tính, tùy thuộc vào cách chúng tôi chỉ định trong sheet_name;

Bây giờ, nếu chúng tôi sử dụng nó để đọc tệp Excel của mình, chúng tôi sẽ nhận được

Đúng vậy, một lỗi. Hóa ra gấu trúc không thể tự đọc tệp Excel, vì vậy chúng ta cần cài đặt gói python khác để làm điều đó

Có 2 lựa chọn mà chúng ta có. xlrdopenpyxl. Gói xlrd mở được cả Excel 2003 (. xls) và Excel 2007+ (. xlsx), trong khi openpyxl chỉ có thể mở Excel 2007+ (. tệp xlsx). Vì vậy, chúng tôi sẽ cài đặt xlrd vì nó có thể mở cả hai định dạng

df = pd.read_excel(‘path_to_excel_file’, sheet_name=’…’)1

Bây giờ, nếu chúng ta cố gắng đọc lại cùng một dữ liệu

Nó hoạt động

Nhưng các tệp Excel có thể lộn xộn hơn một chút. Ngoài dữ liệu, họ có thể có nhận xét/giải thích khác trong vài hàng đầu tiên và/hoặc cuối cùng

Để yêu cầu gấu trúc bắt đầu đọc một trang tính Excel từ một hàng cụ thể, hãy sử dụng đối số header = 0-indexed row nơi bắt đầu đọc. Theo mặc định, tiêu đề = 0 và hàng đầu tiên như vậy được sử dụng để cung cấp tên của các cột khung dữ liệu

Để bỏ qua các hàng ở cuối trang tính, hãy sử dụng skipfooter = số hàng để bỏ qua

Ví dụ

cái này tốt hơn một chút. Vẫn còn một số vấn đề cụ thể đối với dữ liệu này. Tùy thuộc vào những gì chúng tôi muốn đạt được, chúng tôi cũng có thể cần sắp xếp lại các giá trị dữ liệu theo cách khác. Nhưng trong bài viết này, chúng tôi sẽ chỉ tập trung vào việc đọc và ghi vào và từ các khung dữ liệu

Một cách khác để đọc tệp Excel ngoài cách trên là sử dụng đối tượng df = pd.read_excel(‘path_to_excel_file’, sheet_name=’…’)2. Một đối tượng như vậy có thể được xây dựng bằng cách sử dụng hàm tạo df = pd.read_excel(‘path_to_excel_file’, sheet_name=’…’)3. Một đối tượng df = pd.read_excel(‘path_to_excel_file’, sheet_name=’…’)4 có thể được sử dụng theo một số cách. Thứ nhất, nó có thuộc tính df = pd.read_excel(‘path_to_excel_file’, sheet_name=’…’)5 là danh sách tất cả các tên trang tính bên trong tệp Excel đã mở

Sau đó, đối tượng df = pd.read_excel(‘path_to_excel_file’, sheet_name=’…’)4 này cũng có một phương thức df = pd.read_excel(‘path_to_excel_file’, sheet_name=’…’)7 có thể được sử dụng để phân tích một trang tính từ tệp và trả về một khung dữ liệu. Tham số đầu tiên của phương thức này có thể là chỉ mục của trang tính mà chúng ta muốn phân tích hoặc tên của trang tính đó. Các tham số còn lại giống như trong hàm df = pd.read_excel(‘path_to_excel_file’, sheet_name=’…’)8

Một ví dụ về phân tích trang tính thứ hai (chỉ mục 1)

… và ở đây chúng tôi phân tích cú pháp của cùng một trang tính bằng tên của nó thay vì chỉ mục

Các df = pd.read_excel(‘path_to_excel_file’, sheet_name=’…’)4 cũng có thể được sử dụng bên trong các câu lệnh sheet_name0 và nếu bạn muốn làm điều gì đó phức tạp hơn một chút, chẳng hạn như chỉ phân tích cú pháp các trang tính có 2 từ trong tên của chúng, bạn có thể làm điều gì đó như

Điều tương tự bạn có thể làm bằng cách sử dụng phương thức df = pd.read_excel(‘path_to_excel_file’, sheet_name=’…’)8 thay vì phương pháp df = pd.read_excel(‘path_to_excel_file’, sheet_name=’…’)7, như thế này

… hoặc, nếu bạn chỉ muốn tất cả các trang tính, bạn có thể thực hiện

Viết tệp Excel

Bây giờ chúng ta đã biết cách đọc tệp excel, bước tiếp theo đối với chúng tôi là có thể ghi khung dữ liệu vào tệp excel. Chúng ta có thể làm điều đó bằng cách sử dụng phương pháp khung dữ liệu sheet_name3

Trước tiên hãy tạo một khung dữ liệu đơn giản để ghi vào tệp excel

Bây giờ chúng tôi muốn ghi nó vào một tệp excel

… và chúng tôi gặp lỗi

Một lần nữa, gấu trúc không thể tự ghi vào tệp excel; . Các tùy chọn chính mà chúng tôi có là

  • sheet_name4 — chỉ hoạt động với Excel 2003 (. xls);
  • sheet_name5 — chỉ hoạt động với Excel 2007+ (. xlsx);
  • openpyxl — chỉ hoạt động với Excel 2007+ (. xlsx);

Nếu chúng ta muốn có thể viết thư cho người cũ. xls, chúng ta nên cài đặt sheet_name4 vì đây là phần mềm duy nhất xử lý các tệp đó. Vì. xlsx, chúng tôi sẽ chọn openpyxl vì nó cũng hỗ trợ chế độ chắp thêm

sheet_name9

Bây giờ nếu chúng ta chạy lại đoạn mã trên, nó sẽ hoạt động;

Theo mặc định, gấu trúc cũng ghi cột chỉ mục cùng với các cột của chúng tôi. Để loại bỏ nó, hãy sử dụng sheet_name=None0 như trong mã bên dưới

Cột chỉ mục hiện không có ở đó

Nếu chúng ta muốn viết nhiều tờ hơn thì sao?

Câu trả lời là không. Nó sẽ chỉ ghi đè lên tệp chỉ bằng một trang tính. tờ2

Để ghi thêm sheet vào file Excel ta cần sử dụng đối tượng sheet_name=None1 như hình bên dưới. Đầu tiên, chúng tôi tạo một khung dữ liệu khác cho sheet2, sau đó chúng tôi mở tệp Excel dưới dạng đối tượng sheet_name=None2 trong đó chúng tôi ghi 2 khung dữ liệu

Bây giờ tệp Excel của chúng tôi phải có 2 trang tính. Sau đó, nếu chúng ta muốn thêm một trang tính khác vào đó, chúng ta cần mở tệp ở chế độ chắp thêm và chạy mã tương tự như mã trước đó. Ví dụ

File Excel của chúng ta bây giờ có 3 sheet và trông như thế này

Làm việc với các công thức Excel

Có lẽ bạn đang tự hỏi, tại thời điểm này, về các công thức Excel. Còn họ thì sao?

Chà… tin tốt đây. Nó khá dễ dàng. Viết công thức vào tệp Excel đơn giản như chỉ cần viết chuỗi công thức và các chuỗi này sẽ được Excel tự động diễn giải dưới dạng công thức

như một ví dụ

Tệp Excel được tạo bởi đoạn mã trên là

Bây giờ, nếu chúng ta muốn đọc một tệp Excel có các công thức trong đó, gấu trúc sẽ đọc vào các khung dữ liệu kết quả của các công thức đó

Ví dụ: hãy đọc tệp đã tạo trước đó của chúng tôi

Đôi khi, bạn cần lưu tệp Excel theo cách thủ công để tệp này hoạt động và không nhận được số 0 thay vì kết quả của công thức (nhấn CTRL+S trước khi thực hiện mã trên)

Làm thế nào để gấu trúc đọc các tệp Excel trong Jupyter?

Sử dụng gấu trúc để đọc tệp Excel trong Jupyter .
Chọn trang tính trong tệp excel để đọc
Bỏ qua hàng
Chỉ định việc xử lý các giá trị NA

Gấu trúc Python có thể đọc Excel không?

read_excel. Đọc tệp Excel vào DataFrame của gấu trúc. Hỗ trợ các phần mở rộng tệp xls , xlsx , xlsm , xlsb , odf , ods và odt đọc từ hệ thống tệp cục bộ hoặc URL.

Gấu trúc có thể đọc CSV đọc Excel không?

Nó cũng cung cấp các phương pháp thống kê, cho phép vẽ biểu đồ, 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 . Các hàm như phương thức read_csv() của Pandas cho phép bạn làm việc với các tệp một cách hiệu quả.

Bạn có thể sử dụng Excel trong sổ ghi chép Jupyter không?

Khi bạn làm việc với sổ ghi chép Jupyter, bạn có thể sử dụng Excel làm trình xem dữ liệu tương tác hoặc bàn di chuột từ nơi bạn có thể tải DataFrames . Hai chức năng xem và tải tiện lợi khiến việc này thực sự dễ dàng. Các chức năng xem và tải chỉ nên được sử dụng cho công việc tương tác.