Đọc tài liệu XML vào một đối tượng DataFrame
.
Mới trong phiên bản 1.3.0.
Tham sốpath_or_bufferstr, path object, or file-like objectChuỗi, đối tượng đường dẫn [triển khai
iterparse = {"row_element": ["child_elem", "attr", "grandchild_elem"]}0] hoặc đối tượng giống như tệp thực hiện hàm
iterparse = {"row_element": ["child_elem", "attr", "grandchild_elem"]}1. Chuỗi có thể là bất kỳ chuỗi XML hợp lệ hoặc đường dẫn. Chuỗi có thể là một URL. Các sơ đồ URL hợp lệ bao gồm HTTP, FTP, S3 và Tệp.XPathstr, Tùy chọn, mặc định ‘./*str, optional, default ‘./*’
Xpath to Parse yêu cầu tập hợp các nút để di chuyển sang DataFrame. XPath nên trả lại một bộ sưu tập các phần tử và không phải là một yếu tố. Lưu ý: Trình phân tích cú pháp
iterparse = {"row_element": ["child_elem", "attr", "grandchild_elem"]}2 hỗ trợ các biểu thức XPath giới hạn. Đối với XPath phức tạp hơn, hãy sử dụng
iterparse = {"row_element": ["child_elem", "attr", "grandchild_elem"]}3 yêu cầu cài đặt.tên gọi, tùy chọndict, optional
Các không gian tên được xác định trong tài liệu XML là các dicts với khóa là tiền tố không gian tên và định giá URI. Không cần phải bao gồm tất cả các không gian tên trong XML, chỉ những người được sử dụng trong biểu thức
iterparse = {"row_element": ["child_elem", "attr", "grandchild_elem"]}4. Lưu ý: Nếu tài liệu XML sử dụng không gian tên mặc định được ký hiệu là XMLNS =, không có tiền tố, bạn phải gán bất kỳ tiền tố không gian tên tạm thời nào như ‘Doc, cho URI để phân tích các nút và/hoặc thuộc tính bên dưới. Ví dụ,
namespaces = {"doc": "//example.com"}elems_onlybool, tùy chọn, mặc định saibool, optional, default False
Chỉ phân tích các yếu tố trẻ em tại
iterparse = {"row_element": ["child_elem", "attr", "grandchild_elem"]}4 được chỉ định. Theo mặc định, tất cả các yếu tố trẻ em và các nút văn bản không trống được trả về. attrs_onlybool, tùy chọn, mặc định saibool, optional, default False
Chỉ phân chia các thuộc tính tại
iterparse = {"row_element": ["child_elem", "attr", "grandchild_elem"]}4 được chỉ định. Theo mặc định, tất cả các thuộc tính được trả về.Danh sách giống như, tùy chọnlist-like, optional
Tên cột cho DataFrame của dữ liệu XML phân tích cú pháp. Sử dụng tham số này để đổi tên các tên phần tử gốc và phân biệt các phần tử và thuộc tính được đặt tên giống nhau.
Tên DTYPETYPE hoặc DIGNT CỦA Cột -> Loại, Tùy chọnType name or dict of column -> type, optionalKiểu dữ liệu cho dữ liệu hoặc cột. Ví dụ. {’A, Nếu các bộ chuyển đổi được chỉ định, chúng sẽ được áp dụng thay vì chuyển đổi DTYPE.
Mới trong phiên bản 1.5.0.
ConvertersDict, tùy chọndict, optionalDiễn ngôn của các chức năng để chuyển đổi các giá trị trong các cột nhất định. Các phím có thể là số nguyên hoặc nhãn cột.
Mới trong phiên bản 1.5.0.
ConvertersDict, tùy chọnbool or list of int or names or list of lists or dict, default FalseDiễn ngôn của các chức năng để chuyển đổi các giá trị trong các cột nhất định. Các phím có thể là số nguyên hoặc nhãn cột.
parse_datesbool hoặc danh sách int hoặc tên hoặc danh sách danh sách hoặc dict, mặc định sai
Định danh để phân tích chỉ mục hoặc cột vào DateTime. Hành vi như sau:
Boolean. Nếu đúng -> thử phân tích cú pháp chỉ mục.
Danh sách INT hoặc tên. ví dụ. Nếu [1, 2, 3] -> thử phân tích các cột 1, 2, 3 mỗi cột là một cột ngày riêng biệt.
Mới trong phiên bản 1.5.0.
ConvertersDict, tùy chọnstr, optional, default ‘utf-8’Diễn ngôn của các chức năng để chuyển đổi các giá trị trong các cột nhất định. Các phím có thể là số nguyên hoặc nhãn cột.
parse_datesbool hoặc danh sách int hoặc tên hoặc danh sách danh sách hoặc dict, mặc định sai{‘lxml’,’etree’}, default ‘lxml’Định danh để phân tích chỉ mục hoặc cột vào DateTime. Hành vi như sau:
Boolean. Nếu đúng -> thử phân tích cú pháp chỉ mục.str, path object or file-like objectDanh sách INT hoặc tên. ví dụ. Nếu [1, 2, 3] -> thử phân tích các cột 1, 2, 3 mỗi cột là một cột ngày riêng biệt.
Danh sách danh sách. ví dụ. Nếu [[1, 3]] -> Kết hợp các cột 1 và 3 và phân tích cú pháp là một cột ngày duy nhất.dict, optionalDiễn ngôn, ví dụ: {‘Foo,
iterparse = {"row_element": ["child_elem", "attr", "grandchild_elem"]}
Mới trong phiên bản 1.5.0.
ConvertersDict, tùy chọnstr or dict, default ‘infer’Diễn ngôn của các chức năng để chuyển đổi các giá trị trong các cột nhất định. Các phím có thể là số nguyên hoặc nhãn cột.
Mới trong phiên bản 1.5.0: Đã thêm hỗ trợ cho các tệp .tar.Added support for .tar files.
Đã thay đổi trong phiên bản 1.4.0: Hỗ trợ Zstandard.Zstandard support.
Storage_OptionsDict, Tùy chọndict, optionalCác tùy chọn bổ sung có ý nghĩa cho một kết nối lưu trữ cụ thể, ví dụ: máy chủ, cổng, tên người dùng, mật khẩu, v.v. cho URL HTTP [s], các cặp giá trị khóa được chuyển tiếp đến
>>> xml = ''' ... ... ... square ... 360 ... 4.0 ... ... ... circle ... 360 ... ... ... ... triangle ... 180 ... 3.0 ... ... '''4 dưới dạng tùy chọn tiêu đề. Đối với các URL khác [ví dụ: bắt đầu với S3: //, và GC GCS: //], các cặp giá trị khóa được chuyển tiếp đến
>>> xml = ''' ... ... ... square ... 360 ... 4.0 ... ... ... circle ... 360 ... ... ... ... triangle ... 180 ... 3.0 ... ... '''5. Vui lòng xem
>>> xml = ''' ... ... ... square ... 360 ... 4.0 ... ... ... circle ... 360 ... ... ... ... triangle ... 180 ... 3.0 ... ... '''6 và
>>> xml = ''' ... ... ... square ... 360 ... 4.0 ... ... ... circle ... 360 ... ... ... ... triangle ... 180 ... 3.0 ... ... '''7 để biết thêm chi tiết và để biết thêm ví dụ về các tùy chọn lưu trữ, hãy tham khảo tại đây.ReturnSdf
Một khung dữ liệu.
Xem thêm
>>> xml = ''' ... ... ... square ... 360 ... 4.0 ... ... ... circle ... 360 ... ... ... ... triangle ... 180 ... 3.0 ... ... '''8
Chuyển đổi chuỗi JSON sang đối tượng Pandas.
>>> xml = ''' ... ... ... square ... 360 ... 4.0 ... ... ... circle ... 360 ... ... ... ... triangle ... 180 ... 3.0 ... ... '''9
Đọc các bảng HTML vào danh sách các đối tượng DataFrame.
Ghi chú
Phương pháp này được thiết kế tốt nhất để nhập các tài liệu XML nông theo định dạng sau đây là sự phù hợp lý tưởng cho hai chiều của DataFrame
[hàng từng cột].
data data data ... ... ...
Là một định dạng tệp, các tài liệu XML có thể được thiết kế bất kỳ cách nào bao gồm bố trí các phần tử và thuộc tính miễn là nó phù hợp với thông số kỹ thuật của W3C. Do đó, phương pháp này là một trình xử lý tiện lợi cho một thiết kế phẳng hơn cụ thể và không phải tất cả các cấu trúc XML có thể.
Tuy nhiên, đối với các tài liệu XML phức tạp hơn,
>>> df = pd.read_xml[xml] >>> df shape degrees sides 0 square 360 4.0 1 circle 360 NaN 2 triangle 180 3.01 cho phép bạn tạm thời thiết kế lại tài liệu gốc bằng XSLT [ngôn ngữ mục đích đặc biệt] cho phiên bản phẳng hơn để di chuyển sang DataFrame.
Hàm này sẽ luôn trả về một DataFrame
hoặc nêu các ngoại lệ do các vấn đề với tài liệu XML,
iterparse = {"row_element": ["child_elem", "attr", "grandchild_elem"]}4 hoặc các tham số khác.
Xem tài liệu read_xml trong phần IO của tài liệu để biết thêm thông tin trong việc sử dụng phương thức này để phân tích các tệp XML vào DataFrames.read_xml documentation in the IO section of the docs for more information in using this method to parse XML files to DataFrames.
Ví dụ
>>> xml = ''' ... ... ... square ... 360 ... 4.0 ... ... ... circle ... 360 ... ... ... ... triangle ... 180 ... 3.0 ... ... '''
>>> df = pd.read_xml[xml] >>> df shape degrees sides 0 square 360 4.0 1 circle 360 NaN 2 triangle 180 3.0
>>> xml = ''' ... ... ... ... ... '''
>>> df = pd.read_xml[xml, xpath=".//row"] >>> df shape degrees sides 0 square 360 4.0 1 circle 360 NaN 2 triangle 180 3.0
>>> xml = ''' ... ... ... square ... 360 ... 4.0 ... ... ... circle ... 360 ... ... ... ... triangle ... 180 ... 3.0 ... ... '''
>>> df = pd.read_xml[xml, ... xpath="//doc:row", ... namespaces={"doc": "//example.com"}] >>> df shape degrees sides 0 square 360 4.0 1 circle 360 NaN 2 triangle 180 3.0