首页 >后端开发 >Python教程 >如何有效地将 XML 转换为 Pandas DataFrame?

如何有效地将 XML 转换为 Pandas DataFrame?

Barbara Streisand
Barbara Streisand原创
2024-11-30 19:46:11643浏览

How can I convert XML to a Pandas DataFrame efficiently?

高效地将 XML 转换为 Pandas DataFrame

XML 文件通常包含可以使用 Pandas 等工具进行分析的有价值的数据。要将 XML 文件转换为 DataFrame,可以在下面找到一种有效的方法:

import pandas as pd
import xml.etree.ElementTree as ET
import io

def iter_docs(author):
    author_attr = author.attrib
    for doc in author.iter('document'):
        doc_dict = author_attr.copy()
        doc_dict.update(doc.attrib)
        doc_dict['data'] = doc.text
        yield doc_dict

xml_data = io.StringIO(u'''YOUR XML STRING HERE''')

etree = ET.parse(xml_data) #create an ElementTree object
doc_df = pd.DataFrame(list(iter_docs(etree.getroot())))

说明:

  • iter_docs 生成器函数迭代XML文档,将作者属性、文档属性以及文档文本节点的内容提取到一个字典。
  • 然后根据 iter_docs 函数生成的字典列表构造 Pandas DataFrame。

附加说明:

问题中提供的示例 XML 假定为单个作者。如果有多个作者,则可以使用附加生成器函数 iter_author 来迭代每个作者并生成他们各自的所有文档字典。这需要将示例代码的最后一行修改为:

doc_df = pd.DataFrame(list(iter_author(etree)))

有关在 Python 中使用 XML 的进一步指导,请参阅 xml 库文档中的 ElementTree 教程。

以上是如何有效地将 XML 转换为 Pandas DataFrame?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn