Hướng dẫn python xml to dataframe - python xml vào khung dữ liệu
XML là ngôn ngữ đánh dấu được sử dụng để biểu diễn và phân phối các cấu trúc dữ liệu có thể thường khó tạo bằng cách sử dụng các định dạng bảng tiêu chuẩn hơn. Về cơ bản, định dạng XML tương tự như HTML (thực sự là ngôn ngữ đánh dấu khác), trong đó dữ liệu được tổ chức theo các phần tử, xác định loại thông tin được phơi sáng và mỗi phần tử chứa giá trị thực tế ở dạng nội dung hoặc thuộc tính. Ảnh của Florian Olivo trên unplashTrang XML trên Wikipedia cung cấp một cái nhìn tổng quan sâu rộng về tất cả các chi tiết và kỹ thuật của định dạng này, nhưng các khái niệm chính rất đơn giản. Mỗi phần thông tin được phân định bởi một thẻ cụ thể, như thế này:
Trong ví dụ này, mỗi học sinh được đại diện bởi một yếu tố import xml.etree.ElementTree as et 0; Giữa các thẻ này, nội dung dữ liệu thực tế đề cập đến sinh viên đã cho có mặt. Hãy nói rằng dữ liệu này được lưu trong một tệp XML có tên là Sinh viên.xml.Chúng ta có thể nghĩ về cấu trúc này như một khung dữ liệu gấu trúc trong đó mỗi học sinh đại diện cho một quan sát, với thuộc tính Vì vậy, chúng tôi muốn tìm cách chuyển đổi dữ liệu có cấu trúc XML thành một bảng chức năng hơn. Với cấu trúc của các tệp XML, chúng ta có thể đại diện cho chúng như một cây và đây là cách tiếp cận được sử dụng bởi mô -đun XML.ETREE.elementTrepython. Việc phân tích cú pháp của tệp sinh viên của chúng tôi.xml, bắt đầu từ gốc của cây, cụ thể là phần tử import xml.etree.ElementTree as et 2, chứa toàn bộ cấu trúc dữ liệu.Python
module. The parsing of our “students.xml” file starts at the root of the tree, namely the import xml.etree.ElementTree as et 2 element, which contains the entire data structure.import xml.etree.ElementTree as et Bây giờ chúng tôi có thể lặp qua từng nút của cây, điều đó có nghĩa là chúng tôi sẽ nhận được từng yếu tố sinh viên và lấy thuộc tính ____ của nó và tất cả các yếu tố phụ của nó để xây dựng DataFrame của chúng tôi. for node in xroot: Để có được thuộc tính import xml.etree.ElementTree as et 5, trong khi nội dung văn bản của từng phần tử có thể được truy xuất bằng cách sử dụng hàm import xml.etree.ElementTree as et 6 của các nút. ; Chúng tôi có thể xây dựng quy trình này như sau:Each iteration will return a set of data that can be thought as an observation in a pandas DataFrame; we can build this procedure as follows: import pandas as pd Nhược điểm của phương pháp này là bạn cần biết cấu trúc của tệp XML trước và bạn phải có tên cột mã cứng phù hợp. Chúng tôi có thể cố gắng chuyển đổi mã này thành một chức năng hữu ích và linh hoạt hơn mà không cần phải khó -Code bất kỳ giá trị nào: import pandas as pd Một đoạn mã thú vị là sự hiểu biết của Dict trong: {df_cols[i]: res[i] for i, _ in enumerate(df_cols)} trong đó một từ điển trong tên cột tên: Giá trị nút được tạo và thêm vào danh sách các hàng. Chúng cuối cùng sẽ được sử dụng để tạo ra hoàn chỉnh DataFrame. Nếu chúng tôi áp dụng chức năng của mình cho tệp của Student Student.xml bằng cách sử dụng import xml.etree.ElementTree as et 7, kết quả chính xác là bảng chúng tôi đã thấy ở trên.Đây là một triển khai hiệu quả hơn của chức năng phân tích cú pháp XML, mặc dù chúng ta vẫn cần biết cấu trúc cơ bản của tài liệu XML đầu vào mà chúng ta muốn phân tích. |