【问题标题】:How to read XML file into Pandas Dataframe like Read XML Table in Excel如何将 XML 文件读入 Pandas Dataframe,如在 Excel 中读取 XML 表
【发布时间】:2020-08-27 06:59:57
【问题描述】:

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

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

我认为我面临两个问题:

  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> 

【问题讨论】:

  • 你为什么不更新你原来的问题:stackoverflow.com/questions/61732011/…?您确实找到了删除链接,在同一行中还有一个 edit 链接。请不要删除和重新发布问题。这是不受欢迎的,可能会给你带来麻烦。
  • @rene 我最初编辑了这个问题,但是一旦我编辑了这个问题,就与我最初提出的问题完全不同。离开旧的(不同的)问题并发布新问题是更好的行为吗?发布一个新问题似乎更合乎逻辑。
  • @rene 谢谢。你现在不认为它们有什么不同,因为我已经改变了它。您认为目前回答我的问题的最佳途径是什么?
  • 练习耐心...
  • 哦,你确定在&lt;/SecurityInformation&gt; 结束标记上有命名空间属性吗?这将是我第一次遇到这些。

标签: python xml pandas elementtree


【解决方案1】:

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

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)

【讨论】:

    猜你喜欢
    • 2021-11-24
    • 2019-03-28
    • 1970-01-01
    • 2016-02-01
    • 2019-06-08
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多