首页 > 解决方案 > 如何将 XML 文件读入 Pandas Dataframe,如在 Excel 中读取 XML 表

问题描述

我有一个 xml 文件,我正在尝试遍历标签以将其转换为 pandas 数据框。我目前的过程是用 excel 作为“XML 表”打开 XML 文件,但这需要很长时间。试图在 Python 中找到类似的过程。

我正在尝试遵循许多其他 Stack Overflow 问题和文章中提供的代码,例如此处此处

我相信我面临两个问题:

  1. 拥有命名空间会影响我的 xml 吗?

  2. 我不想将我的所有标签都指定为 19.7.1.6 中的解决方案。元素树文档。我只希望我的所有标签都显示为每个“安全”的列。如果它没有那个标签,它应该是空的。我也不想做一个讨厌的 if-else。

问题是当我运行代码时:

import xml.etree.ElementTree as et

etree = et.parse(xml_path)
test = etree.getroot()

并尝试按照上述链接中的建议进行迭代,我无法轻松访问子节点。

示例文件:

<?xml version="1.0"?>
<SecurityInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/SecurityInformation.xsd">
    <Security>
        <Country>United States</Country>
    </Security>
</SecurityInformation> 

标签: pythonxmlpandaselementtree

解决方案


我已经为类似的用例制作了一个包。它也可以在这里工作。

pip install pandas_read_xml

你可以做类似的事情

import pandas_read_xml as pdx

df = pdx.read_xml('filename.xml', ['SecurityInformation'])

为了展平,你可以

df = pdx.flatten(df)

或者

df = pdx.fully_flatten(df)

推荐阅读