Pandas ExcelFile

Đọc file Excel [phần mở rộng. xlsx,. xls] với Python Pandas. Để đọc tệp excel dưới dạng DataFrame, hãy sử dụng phương pháp pandas

1
2
3
4
5
2

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

khóa học liên quan. Phân tích dữ liệu với Python Pandas

Excel

Trong bài viết này, chúng tôi sử dụng một tệp Excel ví dụ. Các chương trình chúng tôi sẽ thực hiện để đọc Excel thành Python

Tạo một file excel gồm 2 sheet sheet1 và sheet2. Bạn có thể sử dụng bất kỳ chương trình hỗ trợ Excel nào như Microsoft Excel hoặc Google Sheets

Nội dung của từng cái như sau

tờ1

tờ2

Cài đặt xlrd

gấu trúc. . read_excel một. ] sử dụng thư viện có tên xlrd trong nội bộ

xlrd là một thư viện để đọc [nhập] tệp Excel [. xlsx,. xls] bằng Python

bài viết liên quan. Cách dùng xlrd, xlwt đọc ghi file Excel bằng Python

Nếu bạn gọi gấu trúc. read_excel s[] trong môi trường chưa cài đặt xlrd, bạn sẽ nhận được thông báo lỗi tương tự như sau

Nhập Lỗi. Cài đặt xlrd >= 0. 9. 0 để được hỗ trợ Excel

xlrd có thể được cài đặt bằng pip. [pip3 tùy thuộc vào môi trường]

1
$ pip install xlrd

đọc excel

Chỉ định đường dẫn hoặc URL của tệp Excel trong đối số đầu tiên.
Nếu có nhiều trang tính, gấu trúc chỉ sử dụng trang tính đầu tiên.
Nó đọc là DataFrame.

1
2
3
4
5
import pandas as pd

df = pd.read_excel['sample.xlsx']

print[df]

Đoạn code trên xuất ra nội dung sheet excel

1
2
3
4
  Unnamed: 0   A   B   C
0 one 11 12 13
1 two 21 22 23
2 three 31 32 33

Nhận trang tính

Bạn có thể chỉ định trang tính để đọc với đối số sheet_name

Chỉ định theo số [bắt đầu từ 0]

1
2
3
df_sheet_index = pd.read_excel['sample.xlsx', sheet_name=1]

print[df_sheet_index]
1
2
3
4
1
0

Chỉ định theo tên trang tính

1
2
3
$ pip install xlrd
1____5
1
0

Tải nhiều tờ

Cũng có thể chỉ định một danh sách trong đối số sheet_name. Nó là OK ngay cả khi nó là một số 0 bắt đầu hoặc tên trang tính

Số hoặc tên trang tính được chỉ định là khóa chính và gấu trúc dữ liệu. DataFrame được đọc dưới dạng từ điển được đặt hàng OrderedDict với giá trị giá trị

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

1
5]

1
6

Trong đó

1
7 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
1
8. 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
1
7;

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ó.

$ pip install xlrd
1 và
$ pip install xlrd
2. Gói
$ pip install xlrd
1 mở được cả Excel 2003 [. xls] và Excel 2007+ [. xlsx], trong khi
$ pip install xlrd
2 chỉ có thể mở Excel 2007+ [. tệp xlsx]. Vì vậy, chúng tôi sẽ cài đặt
$ pip install xlrd
1 vì nó có thể mở cả hai định dạng

1
61

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

1
62. 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
1
63. Một đối tượng
1
64 có thể được sử dụng theo một số cách. Thứ nhất, nó có thuộc tính
1
65 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

1
64 này cũng có một phương thức
1
67 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
1
68

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

1
64 cũng có thể được sử dụng bên trong các câu lệnh
1
70 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 pháp

1
68 thay vì
1
67, 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

1
73

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à

  • 1
    74 — chỉ hoạt động với Excel 2003 [. xls];
  • 1
    75 — chỉ hoạt động với Excel 2007+ [. xlsx];
  • $ pip install xlrd
    2 — 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

1
74 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
$ pip install xlrd
2 vì nó cũng hỗ trợ chế độ chắp thêm

1
79

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

1
80 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

1
81 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
1
82 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]

Chúng ta có thể đọc tệp excel trong gấu trúc không?

Đọc tệp Excel vào DataFrame 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.

Làm cách nào để trích xuất dữ liệu từ excel bằng gấu trúc python?

Cách tiếp cận. .
Nhập mô-đun cần thiết
Nhập dữ liệu từ tệp Excel
Tạo một cột bổ sung cho một ngày mới
Đặt chỉ mục để tìm kiếm
Xác định mẫu định dạng ngày
Ngày tìm kiếm và gán cho cột tương ứng trong Dataframe

Tại sao gấu trúc không thể đọc excel?

Pandas sử dụng xlrd làm công cụ mặc định để đọc tệp excel. Tuy nhiên, xlrd đã xóa hỗ trợ cho mọi thứ khác ngoài tệp xls trong bản phát hành mới nhất của họ . Điều này khiến bạn nhận được lỗi rằng loại tệp xlsx không còn được hỗ trợ khi gọi hàm read_excel trên excel xlsx bằng gấu trúc.

Panda excel là gì?

Khung dữ liệu Pandas tương đương với bảng tính Excel . Pandas dataframes - giống như bảng tính Excel - có 2 chiều hoặc trục. Một khung dữ liệu có các hàng và cột [còn được gọi là chuỗi]. Trên đầu khung dữ liệu, bạn sẽ thấy tên của các cột và ở phía bên trái, có chỉ mục.

Chủ Đề