首頁 > 後端開發 > Python教學 > 如何在 Python 中有效地將 XML 資料轉換為 Pandas DataFrame?

如何在 Python 中有效地將 XML 資料轉換為 Pandas DataFrame?

DDD
發布: 2024-11-16 13:25:03
原創
669 人瀏覽過

How can I efficiently convert XML data into a Pandas DataFrame in Python?

將 XML 文件轉換為 Pandas DataFrames

處理 XML 資料時,通常需要處理和分析其中的資訊。 Pandas 為此提供了一個方便的工具,可讓您將 XML 轉換為結構化 DataFrame。

讓我們考慮一個像給定的 XML 結構:

<author type="XXX" language="EN" gender="xx" feature="xx" web="foobar.com">
    <documents count="N">
        <document KEY="e95a9a6c790ecb95e46cf15bee517651">![CDATA[A large text with lots of strings and punctuations symbols [...]
]]></document>
        <!-- more documents -->
    </documents>
</author>
登入後複製

目標是轉換此 XML到一個包含鍵、類型、語言、功能、網路和資料列的 DataFrame 中。

使用 ElementTree 的高效方法

為了實現這一點,我們可以利用 Python 的 xml .etree.ElementTree,它提供了一種解析 XML 的有效方法。這是一種改進的方法:

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

xml_data = "file_path"
etree = ET.parse(xml_data) #create an ElementTree object

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

doc_df = pd.DataFrame(list(iter_docs(etree.getroot())))
登入後複製

在這種方法中,我們使用 iter_docs 生成器函數來迭代作者和文件元素,提取相關屬性和資料。然後,我們從產生的字典清單中建立一個 DataFrame。

附加說明:

  • 如果您的XML 中有多個author元素,您可以使用另一個生成器函數來循環它們並迭代每個文件中的文檔。
  • 如果 XML 的根元素不是作者,請相應地調整 etree.getroot() 呼叫。

使用 ElementTree 的好處:

  • 高效的解析和記憶體使用。
  • 提供 XML 結構的分層表示,使其易於導航。
  • 支援各種 XML 功能,例如命名空間和註解。

透過遵循這種方法,您可以使用 pandas DataFrames 高效地將複雜的 XML 資料轉換為表格格式,從而實現進一步的資料操作和分析。

以上是如何在 Python 中有效地將 XML 資料轉換為 Pandas DataFrame?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板