Cách kéo dữ liệu từ excel sang python?
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 Python Show Có ba thư viện chính để xử lý các tệp Excel 9 Đọc các tệp Excel 1 Viết và định dạng tệp Excel 2 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à 1) 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ố 8 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ừ 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ến 8
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ập Hãy kiểm tra tên của các trang tính chúng tôi có
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 ta 6 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 8 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 9 để này 0 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 1 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ình 3 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ết 64, tổng số hàng sẽ được trả về 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ặp 66. Như chúng ta đã học trong , các vòng lặp 66 lặp lại các mục trong danh sách, vì vậy chúng ta cần biến 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àm 69 Với việc bổ sung hàm 69, chúng ta có thể chuyển đổi 65 thành một danh sách mà vòng lặp 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ư sau python parse_excel.py1 Lặp lại chỉ mục 83 trong 84, đây sẽ là danh sách gồm 303 số nguyên tăng dần một Đầu ra 83, sẽ là các số từ 0 đến 302 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ứ n Để 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ởi 88 trước đó. Chúng ta có thể thấy từ tài liệu 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ặp 66 của bạn để phản ánh điều này và chạy lại tập lệnh của bạn 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ặp 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ôi 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ặp 66 bên trong một vòng lặp 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ặp 66 lồng nhau trong một ví dụ ở 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ê 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ơn 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ộ đếm 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ị ở đây 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ào 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 đầu 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 đó 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 gia 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ày 0 Đ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ại 09 thêm quốc gia làm chìa khóa cho từ điển 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 sau Đ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 1 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ôi 2 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ình 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ác 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 14 Dữ liệu đầu ra của chúng tôi cho 14 trông như thế này 3 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 4 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 5 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ệnh 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ạng 6 Nhập thư viện 16. Thông thường, các câu lệnh 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ạn Truyền dữ liệu cho hàm 30 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ột 32 vào mã của mình, đó là cách chúng tôi ngắt sớm vòng lặp 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ặp 66, hãy thêm đoạn mã sau và chạy lại mã của bạn 7 Nếu đất nước ngang bằng với Zimbabwe⦠Thoát khỏi vòng lặp 66 Cảnh báo Sau khi thêm 32, bạn có gặp phải lỗi 37 không? . Câu lệnh 05 phải được thụt vào bốn khoảng trắng để nằm trong vòng lặp 66 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ệnh 17 bên trong vòng lặp 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 ra 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 8 Đâ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 Làm cách nào để trích xuất dữ liệu từ Excel bằng Python?Nếu bạn có một tệp và bạn muốn phân tích cú pháp dữ liệu trong đó, bạn cần thực hiện các thao tác sau theo thứ tự này. . nhập mô-đun gấu trúc mở tệp bảng tính (hoặc sổ làm việc) chọn một tờ trích xuất các giá trị của các ô dữ liệu cụ thể Làm cách nào để đọc dữ liệu từ ô Excel trong Python?Đọc tệp Excel bằng Python . Nhận tham chiếu của trang tính trong một đối tượng Lấy số lượng hàng và cột dữ liệu trong trang tính Bắt đầu một vòng lặp cho các hàng Bắt đầu một vòng lặp lồng nhau cho các cột Đọc dữ liệu từ mỗi ô bằng Worksheet. getCell(). lấy (hàng Index, cột Index). phương thức getValue() Làm cách nào để tìm nạp dữ liệu từ tệp xlsx trong Python?Hàm read_excel() của pandas dùng để đọc tệp xlsx . Chức năng này đã được sử dụng trong tập lệnh để đọc doanh số bán hàng. tập tin xlsx. Hàm DataFrame() đã được sử dụng ở đây để đọc nội dung của tệp xlsx trong khung dữ liệu và lưu trữ các giá trị trong biến có tên là dữ liệu.
Làm cách nào để trích xuất dữ liệu từ Excel?Trích xuất dữ liệu sang trang tính khác . Chuyển đến Sheet2 (xem các bước trên video ở trên) Chọn một ô trong phần không sử dụng của trang tính (ô C4 trong ví dụ này) Trên tab Dữ liệu của Dải băng Excel, bấm vào Nâng cao Chọn Sao chép sang vị trí khác Nhấp vào hộp Phạm vi danh sách Chọn Sheet1 và chọn cơ sở dữ liệu |