Thư viện mà chúng tôi đã xác định để phân tích cú pháp các tệp Excel là
9. Thư viện này là một phần của loạt thư viện để làm việc với các tệp Excel trong Pythonimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Có ba thư viện chính để xử lý các tệp Excel
9import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Đọc các tệp Excel
1import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
Viết và định dạng tệp Excel
2import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
Một bộ công cụ cho các thao tác nâng cao hơn trong Excel [yêu cầu
9 vàimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
1]import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
Bạn sẽ cần cài đặt riêng từng cái nếu muốn sử dụng chúng; . Bởi vì chúng tôi muốn đọc các tệp Excel sang Python, bạn sẽ cần đảm bảo rằng bạn đã cài đặt
9 trước khi tiếp tục________số 8import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Thiết lập môi trường làm việc của bạn cho tệp Excel này bằng cách thực hiện như sau [hoặc điều gì đó tương tự, tùy thuộc vào hệ thống tổ chức của bạn]
Tạo một thư mục cho công việc Excel của bạn
Tạo một tệp Python mới có tên là parse_excel. py và đặt nó vào thư mục bạn đã tạo
Đặt tệp Excel từ kho sách có tên SOWC 2014 Stat Tables_Table 9. xlsx trong cùng một thư mục
Từ thư mục này, nhập lệnh sau trong thiết bị đầu cuối của bạn để chạy tập lệnh từ dòng lệnh
python parse_excel.py
Đến cuối chương này, chúng ta sẽ viết một kịch bản để phân tích dữ liệu về lao động trẻ em và hôn nhân được lưu trữ trong tệp Excel này
Để bắt đầu tập lệnh của chúng tôi, chúng tôi cần nhập
9 và mở sổ làm việc Excel của chúng tôi bằng Python. Chúng tôi lưu trữ tệp đã mở trong biếnimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
8import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Không giống như CSV, sách Excel có thể có nhiều tab hoặc trang tính. Để lấy dữ liệu của chúng tôi, chúng tôi sẽ chỉ lấy ra trang tính có dữ liệu chúng tôi muốn
Nếu bạn có một vài trang tính, bạn chỉ có thể đoán theo chỉ mục, nhưng điều đó sẽ không hiệu quả nếu bạn có nhiều trang tính. Vì vậy, bạn nên biết về sổ lệnh. sheet_by_name[______29], trong đó
9 là tên của trang tính bạn muốn truy cậpimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
Hãy kiểm tra tên của các trang tính chúng tôi có
import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
Trang tính mà chúng tôi đang tìm kiếm là
61. Vì vậy, hãy đưa điều đó vào kịch bản của chúng taimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
6import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Nếu bạn chạy mã đó, nó sẽ thoát ra với lỗi cung cấp cho bạn thông tin sau
8import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Tại thời điểm này, bạn có thể thực sự bối rối. Vấn đề nằm ở sự khác biệt giữa những gì chúng ta nhìn thấy và những gì thực sự tồn tại
Nếu bạn mở sổ làm việc Excel của mình và chọn tên của trang tính bằng cách bấm đúp vào nó, bạn sẽ thấy có một khoảng trống thừa ở cuối. Không gian này không hiển thị cho người dùng trong trình duyệt. Trong phần này, chúng ta sẽ tìm hiểu cách khắc phục sự cố này trong Python. Hiện tại, hãy cập nhật mã của bạn để phản ánh khoảng trống
Thay đổi dòng này
9import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
để này
0import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
Bây giờ, nếu chúng tôi chạy tập lệnh của mình thì nó sẽ hoạt động. Bạn sẽ thấy đầu ra tương tự như thế này
1import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
Hãy khám phá những gì chúng ta có thể làm với một trang tính. Thêm phần sau sau khi bạn gán biến
62 và chạy lại tập lệnh của mìnhimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
3import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
Trong danh sách được trả về, bạn sẽ thấy một phương thức có tên là
63. Chúng tôi sẽ sử dụng phương pháp này để lặp lại trên tất cả các hàng. Nếu chúng ta viếtimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
64, tổng số hàng sẽ được trả vềimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Hãy thử ngay bây giờ
python parse_excel.py0
Lẽ ra bạn nên quay lại
65. Chúng ta cần lặp qua từng hàng, có nghĩa là chúng ta cần một vòng lặpimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
66. Như chúng ta đã học trong , các vòng lặpimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
66 lặp lại các mục trong danh sách, vì vậy chúng ta cần biếnimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
65 thành một danh sách mà chúng ta có thể lặp lại hơn 303 lần. Để làm điều này, chúng ta sẽ sử dụng hàmimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
69import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Với việc bổ sung hàm
69, chúng ta có thể chuyển đổiimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
65 thành một danh sách mà vòng lặpimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
66 của chúng ta có thể lặp lại, tập lệnh của chúng ta sẽ giống như sauimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
python parse_excel.py1
Lặp lại chỉ mục
83 trongimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
84, đây sẽ là danh sách gồm 303 số nguyên tăng dần mộtimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Đầu ra
83, sẽ là các số từ 0 đến 302import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Từ đây, chúng ta cần thực hiện tra cứu trên từng hàng để lấy ra nội dung của từng hàng thay vì chỉ in số. Để thực hiện tra cứu, chúng tôi sẽ sử dụng
83 làm tham chiếu chỉ mục để lấy hàng thứ nimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Để lấy các giá trị của từng hàng, chúng tôi sẽ sử dụng
87, đây là một phương thức khác được trả về bởiimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
88 trước đó. Chúng ta có thể thấy từ tài liệuimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
87 rằng phương thức mong đợi một số chỉ mục và trả về các giá trị hàng tương ứng. Cập nhật vòng lặpimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
66 của bạn để phản ánh điều này và chạy lại tập lệnh của bạnimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
python parse_excel.py2
Sử dụng
83 làm chỉ mục để tra cứu các giá trị của hàng. Bởi vì nó nằm trong một vòng lặpimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
66 kéo dài theo chiều dài của trang tính, nên chúng tôi gọi phương thức này cho mỗi hàng trong trang tính của chúng tôiimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Khi bạn chạy mã này, bạn sẽ thấy một danh sách cho mỗi hàng. Sau đây là tập hợp con của dữ liệu bạn sẽ thấy
python parse_excel.py3
Bây giờ chúng ta có thể xem từng hàng, chúng ta cần lấy thông tin chúng ta muốn. Để giúp chúng tôi xác định thông tin nào chúng tôi cần và cách lấy thông tin đó, việc mở tệp trong chương trình hiển thị tệp Excel sẽ dễ dàng hơn nhiều, chẳng hạn như Microsoft Excel trên Windows hoặc Numbers trên máy Mac. Nếu bạn truy cập tab thứ hai trên bảng tính, bạn sẽ nhận thấy khá nhiều hàng tiêu đề
Ghi chú
Trong mã của chúng tôi, chúng tôi sẽ nhằm mục đích lấy văn bản tiếng Anh. Tuy nhiên, nếu bạn muốn có thêm thử thách, hãy thử rút ra các tiêu đề và quốc gia bằng tiếng Pháp hoặc tiếng Tây Ban Nha
Trên tab thứ hai, hãy xem thông tin bạn có thể trích xuất và suy nghĩ về cách sắp xếp thông tin đó một cách tốt nhất. Chúng tôi cung cấp một cách có thể để thực hiện việc này tại đây, nhưng có nhiều cách khác nhau bằng cách sử dụng các cấu trúc dữ liệu khác nhau
Đối với bài tập này, chúng ta sẽ lấy số liệu thống kê về lao động trẻ em và tảo hôn. Sau đây là một cách để sắp xếp dữ liệu—chúng tôi sẽ sử dụng cách này làm ví dụ để hướng tới
python parse_excel.py4
Nếu bạn đang xem dữ liệu trong Excel, một số trong những số này có thể bị tắt. Điều này là do Excel thường sẽ làm tròn số. Chúng tôi đang hiển thị các số bạn sẽ tìm thấy khi sử dụng Python để phân tích các ô
Mẹo
Lập kế hoạch bạn muốn kết quả trông như thế nào và viết một ví dụ về dữ liệu của bạn sẽ giúp bạn tiết kiệm thời gian khi bắt đầu viết mã. Khi bạn đã xác định được cách bạn muốn định dạng dữ liệu của mình, bạn có thể tự hỏi: “Tôi cần làm gì tiếp theo để đạt được điều đó?”â Điều này đặc biệt hữu ích khi bạn cảm thấy bị chặn ở bước tiếp theo
Có hai cấu trúc Python mà chúng ta sẽ sử dụng để lấy dữ liệu ra. Phương pháp đầu tiên chúng ta sẽ sử dụng là một vòng lặp
66 lồng nhau, là một vòng lặpimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
66 bên trong một vòng lặpimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
66 khác. Điều này thường được sử dụng khi bạn có x hàng chứa y đối tượng. Để truy cập từng đối tượng, bạn cần một vòng lặp ________ 166 cho mỗi hàng, sau đó một vòng lặp ________ 166 khác cho mỗi đối tượng. Chúng tôi cũng đã sử dụng vòng lặpimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
66 lồng nhau trong một ví dụ ởimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Chúng ta sẽ sử dụng vòng lặp
66 lồng nhau để xuất từng ô từ mỗi hàng. Thao tác này sẽ xuất các mục mà chúng ta đã thấy trước đó, trong đó mỗi hàng được liệt kêimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
python parse_excel.py5
Lấy danh sách mỗi hàng và lưu nó vào biến
00. Điều này làm cho mã của chúng tôi dễ đọc hơnimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
Lặp lại từng mục trong danh sách, đại diện cho từng ô cho hàng hiện tại
Xuất giá trị ô
Nếu bạn chạy mã hoàn chỉnh của mình với vòng lặp
66 lồng nhau, bạn sẽ nhận thấy đầu ra của mình không còn hữu ích nữa. Điều đó đưa chúng ta đến cơ chế thứ hai để khám phá tệp Excel của chúng tamột bộ đếmimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Hãy thêm một bộ đếm vào mã của chúng ta để chúng ta có thể duyệt qua các ô và hàng để tìm những gì chúng ta muốn lấy ra. Hãy cẩn thận nơi bạn đặt bộ đếm—bạn sẽ có kết quả rất khác nếu bạn đặt nó ở cấp độ ô so với cấp độ hàng
Đặt lại vòng lặp
66 của bạn để trông giống như mã được hiển thị ở đâyimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
python parse_excel.py6
Xuất ra
83 và hàng để chúng tôi thực sự có thể xem số hàng nào có thông tin nàoimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Bây giờ, nếu chúng ta quay lại những gì chúng ta muốn đầu ra cuối cùng của mình trông như thế nào, điều chúng ta thực sự cần tìm ra là tên quốc gia bắt đầu từ đâu. Hãy nhớ rằng, tên quốc gia là khóa đầu tiên của từ điển đầu ra của chúng tôi
python parse_excel.py7
Nếu bạn chạy tập lệnh của mình với bộ đếm ở vị trí
04, bạn sẽ thấy từ đầu ra rằng chúng tôi chưa đến hàng nơi tên quốc gia bắt đầuimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
Bởi vì chúng tôi đang bỏ qua một vài dòng để đến dữ liệu mà chúng tôi quan tâm, nên chúng tôi đang tìm cách xác định số hàng nào chúng tôi sẽ cần để bắt đầu thu thập dữ liệu của mình. Từ lần thử trước, chúng tôi biết tên quốc gia bắt đầu từ hàng 10. Nhưng làm thế nào chúng ta có thể biết bắt đầu từ đâu?
Câu trả lời nằm trong ví dụ mã tiếp theo, nhưng trước khi xem, hãy thử cập nhật bộ đếm để bắt đầu ở hàng bắt đầu tên quốc gia. [Có nhiều cách để thực hiện việc này, vì vậy nếu câu trả lời của bạn hơi khác so với những gì chúng tôi có trong ví dụ mã sau, thì không sao cả. ]
Sau khi bạn xác định đúng số hàng, bạn sẽ cần thêm một câu lệnh
05 để bắt đầu lấy ra các giá trị sau hàng đó. Điều này là để chúng tôi chỉ làm việc với dữ liệu bên dưới dòng đóimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
Nếu bạn có thể làm cho nó hoạt động, mã của bạn sẽ giống như thế này
python parse_excel.py8
Dòng này sẽ lặp qua 20 hàng đầu tiên để xác định tên quốc gia bắt đầu từ hàng nào
Câu lệnh
05 này bắt đầu đầu ra tại điểm xuất hiện các hàng quốc giaimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
Tại thời điểm này, bạn sẽ có đầu ra trông như thế này
python parse_excel.py9
Bây giờ, chúng ta cần biến từng hàng thành định dạng từ điển của mình. Điều này sẽ làm cho dữ liệu có ý nghĩa hơn đối với chúng tôi khi chúng tôi cố gắng làm những việc khác với nó trong các chương sau
Nhìn lại ví dụ trước của chúng tôi về cách chúng tôi muốn đầu ra của mình được tổ chức, chúng tôi sẽ cần một từ điển và chúng tôi sẽ sử dụng các quốc gia làm khóa. Để lấy ra tên quốc gia, chúng tôi sẽ cần thực hiện một số thao tác lập chỉ mục
Hãy thêm một từ điển vào mã của chúng ta, sau đó lấy tên quốc gia ra khỏi mỗi hàng và thêm nó làm khóa cho từ điển của chúng ta
Cập nhật vòng lặp
66 của bạn để phản ánh điều nàyimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
0import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Điều này tạo ra một từ điển trống để lưu trữ dữ liệu của chúng tôi
08 kéo quốc gia ra khỏi mỗi hàng mà chúng tôi lặp lạiimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
09 thêm quốc gia làm chìa khóa cho từ điểnimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
10. Chúng tôi đặt giá trị cho một từ điển khác, vì đó là nơi chúng tôi sẽ lưu trữ dữ liệu của mình trong các bước sauimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
Điều này xuất dữ liệu, vì vậy chúng ta có thể thấy nó trông như thế nào
Tại thời điểm này, đầu ra của bạn sẽ trông giống như thế này
1import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Bây giờ, chúng ta cần khớp từng giá trị trong phần còn lại của hàng với các giá trị phù hợp trong bảng tính, sau đó lưu trữ chúng trong từ điển của chúng ta
Ghi chú
Khi bạn cố gắng rút ra tất cả các giá trị và đối chiếu chúng với trang tính Excel của mình, bạn sẽ mắc rất nhiều lỗi. Đó là tốt và mong đợi. Quá trình này nên được chấp nhận—điều đó có nghĩa là bạn đang giải quyết vấn đề theo cách của mình
Trước tiên, hãy tạo một phiên bản trống của cấu trúc dữ liệu nơi chúng tôi có thể lưu trữ dữ liệu của mình. Hãy cũng loại bỏ bộ đếm của chúng ta, vì chúng ta biết rằng các hàng dữ liệu bắt đầu từ dòng 14. Bởi vì chúng tôi biết
11 có thể chấp nhận điểm bắt đầu và điểm kết thúc, chúng tôi có thể bắt đầu đếm từ 14 và kết thúc ở cuối tệp. Hãy xem mã được cập nhật của chúng tôiimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
2import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Chúng tôi có thể xóa tất cả các tham chiếu của chúng tôi đến bộ đếm và chỉ bắt đầu vòng lặp
66 của chúng tôi bắt đầu từ hàng thứ 14 của trang tính của chúng tôi. Dòng này bắt đầu vòng lặp với giá trị 14, vì vậy chúng tôi tự động bỏ qua các dòng chúng tôi không cần cho tập dữ liệu của mìnhimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Dòng này mở rộng từ điển thành nhiều dòng để điền vào các điểm dữ liệu khác
Thao tác này tạo khóa
13 và đặt nó bằng một từ điển khácimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
Từ điển có các chuỗi để giải thích từng phần dữ liệu mà nó chứa. Đối với mỗi khóa này, các giá trị là danh sách
Điều này xuất ra các giá trị được liên kết với khóa
14import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
Dữ liệu đầu ra của chúng tôi cho
14 trông như thế nàyimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
3import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Bây giờ chúng ta hãy điền dữ liệu. Vì chúng tôi có quyền truy cập vào từng cột của từng hàng bằng cách sử dụng chỉ mục, nên chúng tôi có thể điền vào các danh sách này các giá trị từ trang tính. Bằng cách xem trang tính của chúng tôi và sắp xếp các cột liên quan đến phần nào của dữ liệu, chúng tôi có thể cập nhật từ điển dữ liệu để phản ánh những điều sau
4import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Vì có hai ô cho mỗi cột nên mã của chúng tôi lưu trữ cả hai giá trị. Bởi vì trong dòng này, tổng số lao động trẻ em của chúng tôi là cột thứ năm và thứ sáu và chúng tôi biết Python không được lập chỉ mục, nên chúng tôi muốn có chỉ mục thứ tư và thứ năm
Khi chúng tôi chạy lại mã của mình, chúng tôi nhận được kết quả như thế này
5import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Cảnh báo
Trước khi bạn tiếp tục, hãy xuất một vài bản ghi và kiểm tra số trong từ điển. Thật dễ dàng để kết thúc một chỉ mục và làm hỏng phần còn lại của dữ liệu của bạn
Cuối cùng, để xem trước dữ liệu của chúng tôi, chúng tôi có thể sử dụng
16 thay vì câu lệnhimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
17. Trong các cấu trúc dữ liệu phức tạp [như từ điển], điều này giúp xem lại đầu ra dễ dàng hơn rất nhiều. Thêm phần sau vào cuối tệp của bạn để xem trước dữ liệu theo kiểu đã định dạngimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
6import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Nhập thư viện
16. Thông thường, các câu lệnhimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
19 xuất hiện ở đầu tệp, nhưng chúng tôi đặt nó ở đây để đơn giản. Sau khi hoàn tất, bạn sẽ muốn xóa những dòng này vì chúng không quan trọng đối với tập lệnh của bạnimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
Truyền dữ liệu cho hàm
30import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
Nếu bạn cuộn qua đầu ra của mình, bạn sẽ nhận thấy phần lớn nội dung đó có vẻ tốt. Nhưng có một vài bản ghi có vẻ không đúng chỗ
Các bạn nhìn vào bảng tính lưu ý hàng cuối cùng của các quốc gia là Zimbabwe. Vì vậy, chúng tôi muốn tìm khi quốc gia bằng với
31 và thoát khỏi đó. Để thoát, chúng tôi thêm mộtimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
32 vào mã của mình, đó là cách chúng tôi ngắt sớm vòng lặpimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
66 để tiếp tục với phần còn lại của tập lệnh. Hãy thêm điều đó làm điểm dừng của chúng ta. Ở cuối vòng lặpimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
66, hãy thêm đoạn mã sau và chạy lại mã của bạnimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
7import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Nếu đất nước ngang bằng với Zimbabweâ¦
Thoát khỏi vòng lặp
66import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Cảnh báo
Sau khi thêm
32, bạn có gặp phải lỗiimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
37 không? . Câu lệnhimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
05 phải được thụt vào bốn khoảng trắng để nằm trong vòng lặpimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
66import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Bước qua mã có thể hữu ích trong việc xác định một vấn đề. Nếu bạn cần khắc phục sự cố để tìm ra biến nào, chẳng hạn như
python parse_excel.py00, bằng trong vòng lặp
66, hãy thử thêm các câu lệnhimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
17 bên trong vòng lặpimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
for
sheet
in
book
.
sheets
[]:
sheet
.
name
66 và xem các giá trị trước khi tập lệnh của bạn thoát ra do lỗi. Họ có thể sẽ cho bạn một gợi ý về những gì đang xảy raimport
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Tại thời điểm này, đầu ra của tập lệnh của chúng tôi phù hợp với mục tiêu cuối cùng của chúng tôi. Điều cuối cùng chúng tôi muốn làm với tập lệnh của mình là đảm bảo rằng chúng tôi ghi lại nó bằng một số nhận xét
Kịch bản của bạn bây giờ trông giống như thế này
8import
xlrd
book
=
xlrd
.
open_workbook
[
'SOWC 2014 Stat Tables_Table 9.xlsx'
]
Đây là một nhận xét nhiều dòng được sử dụng để mô tả chung những gì đang diễn ra trong tập lệnh này
Đây là nhận xét một dòng để ghi lại lý do tại sao chúng tôi bắt đầu ở dòng 14 chứ không phải sớm hơn
Chúng ta có thể và nên xóa những dòng này khi chúng ta chuyển từ phân tích cú pháp dữ liệu đơn giản sang phân tích dữ liệu
Tại thời điểm này, chúng tôi có một đầu ra tương tự như dữ liệu của chương trước. Trong chương tiếp theo, chúng ta sẽ tiến thêm một bước nữa và phân tích cú pháp cùng một dữ liệu từ PDF