Panda đọc file excel như thế nào?

Đọc và ghi tệp nói chung là một trong những quy trình cơ bản bạn cần để có thể thực hiện trong mã hóa. Đọc dữ liệu của bạn — giả sử lần này là trong Excel — khá đơn giản, tuy nhiên, một số chi tiết có thể hữu ích trong các trường hợp không lý tưởng

Cho rằng bạn đang đọc dữ liệu để thao tác thêm, chúng tôi sẽ sử dụng Pandas cho nhiệm vụ. Điều này nghe có vẻ giống như một giả định lớn, nhưng số người đọc dữ liệu từ các tệp Excel chỉ để họ không thể làm chính xác gì với nó là tương đối nhỏ. Tôi nắm lấy cơ hội của mình, bạn không phải là một trong số họ

Hãy đi sâu vào vấn đề này. đây là tập tin bạn muốn đọc

Ảnh chụp màn hình của tác giả

Nó không phải là lớn, tôi cung cấp cho bạn điều đó, nhưng dù sao thì nhiều dữ liệu hơn sẽ không phù hợp với ảnh chụp màn hình. Có các phương pháp riêng để đọc trong các phần mở rộng tệp khác nhau, trong trường hợp của chúng tôi, tôi đang sử dụng tệp XLSX, yêu cầu phương pháp gấu trúc read_excel[]

Ảnh chụp màn hình của tác giả

Hoạt động hiệu quả — giờ đây dữ liệu của bạn được tải vào một đối tượng DataFrame. Thông thường, đây là tất cả - bạn đặt tên tệp [và đường dẫn trong đó, trong trường hợp nó không nằm trong cùng thư mục với tập lệnh của bạn], đọc tệp, tắt đi. Phần khó khăn là khi bạn phải sử dụng bất kỳ tham số nào như tôi đã làm với “engine” — bạn có để ý không?

Truyện ngắn. XLRD là công cụ mặc định để Pandas đọc các tệp Excel và khi điều đó xảy ra, XLRD đã ngừng hỗ trợ các tệp XLSX. Nếu bạn vẫn muốn đọc một cái, bạn cần cài đặt openpyxl và đặt nó làm công cụ đọc thay vì mặc định

Hãy xem xét một số tham số khác để xem những gì chúng có thể làm [để biết tài liệu đầy đủ, hãy truy cập tài liệu]

Nếu bạn muốn giữ cho tôi uống cà phê để tạo ra nhiều nội dung như thế này, hãy xem xét để hỗ trợ tôi, chỉ với một ly cà phê

sheet_name

Theo mặc định, gấu trúc sẽ đọc trang đầu tiên trong tệp của bạn nếu có nhiều trang. nếu bạn muốn chọn một cái khác, bạn có thể cung cấp chỉ mục của trang tính [tất nhiên là bắt đầu từ 0] hoặc tên trang tính dưới dạng chuỗi

Ảnh chụp màn hình của tác giả

Ảnh chụp màn hình của tác giả

Lưu ý rằng bạn có thể cung cấp danh sách tên/chỉ mục trang tính để đọc nhiều trang tính, trong trường hợp này, giá trị trả về sẽ là một từ điển và các khóa là tên/chỉ mục trang tính

Ảnh chụp màn hình của tác giả

tiêu đề

Nếu dữ liệu của bạn có hàng tiêu đề ở đâu đó khác với hàng đầu tiên, tất nhiên bạn có thể chỉ định vị trí của nó. Trong trường hợp không có, bạn nên đặt Không và chỉ định [lý tưởng nhất] tên cột trong tham số tiếp theo, tên

Tên

Bạn có thể liệt kê [các] tên của [các] cột tại đây

Ảnh chụp màn hình của tác giả

sử dụng

Mặc dù khá dễ dàng để thu hẹp DataFrame của bạn thành ít cột hơn so với số lượng bạn đã tải ban đầu, nhưng nếu bạn có nhiều cột trong dữ liệu đầu vào của mình và bạn biết trước rằng mình sẽ không sử dụng nhiều cột trong số đó, thì bạn nên sử dụng “usecols . Bạn có nhiều lựa chọn ở đây

  • cung cấp các chữ cái cột Excel dưới dạng một chuỗi, được phân tách bằng dấu phẩy [nếu nhiều] hoặc dưới dạng một phạm vi, e. g. “A, B, C”, [“A. C"],
  • một danh sách các chỉ mục của các cột, e. g. [1, 2, 4],
  • một danh sách tên của các cột, e. g. [“Nhân vật_ID”, “Nhân vật_Tên”, “Nhà”],
  • có thể gọi được, lặp qua các tên cột và trả về các tên đánh giá True,
  • nếu Không, tất cả các cột sẽ được đưa vào DataFrame

cau mày

Để chỉ bao gồm một số hàng nhất định trong DataFrame của bạn

Ảnh chụp màn hình của tác giả

người bỏ qua

Bạn có thể cung cấp số lượng hàng bạn muốn bị cắt ở cuối tập dữ liệu của mình

Tất nhiên, có khá nhiều tùy chọn khác mà bạn có thể sử dụng, ban đầu tôi nghĩ rằng những tùy chọn này có nhiều khả năng hữu ích nhất trong một vài bài tập đọc tệp đầu tiên của bạn. Vui lòng đọc tài liệu để biết thêm chi tiết và nói chung - bạn có thể học được rất nhiều điều chắc chắn

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]

Phương pháp đọc tệp excel trong pandas là gì?

Để đọc tệp excel dưới dạng DataFrame, hãy sử dụng phương thức pandas read_excel[] . Bạn có thể đọc trang đầu tiên, trang cụ thể, nhiều trang hoặc tất cả các trang. Pandas chuyển đổi cấu trúc này thành cấu trúc DataFrame, đây là cấu trúc dạng bảng.

Panda đọc xlsx như thế nào?

gấu trúc. hàm read_excel[] được sử dụng để đọc trang tính excel có phần mở rộng xlsx vào DataFrame của gấu trúc. Bằng cách đọc một trang tính, nó trả về một đối tượng DataFrame của gấu trúc, nhưng đọc hai trang tính, nó trả về Dict of DataFrame. Có thể tải các tệp excel được lưu trữ trong hệ thống tệp cục bộ hoặc từ một URL.

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

Pandas có hỗ trợ các tệp excel không?

Đọ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 đọc từ hệ thống tệp cục bộ hoặc URL . Hỗ trợ tùy chọn đọc một trang tính hoặc danh sách các trang tính. Mọi đường dẫn chuỗi hợp lệ đều được chấp nhận.

Chủ Đề