ホームページ >バックエンド開発 >Python チュートリアル >XML データを Python で Pandas DataFrame に効率的に変換するにはどうすればよいですか?

XML データを Python で Pandas DataFrame に効率的に変換するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-16 13:25:03671ブラウズ

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

XML ドキュメントを Pandas DataFrame に変換する

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 を変換することです。キー、タイプ、言語、機能、Web、およびデータの列を含む DataFrame に変換します。

による効率的なアプローチElementTree

これを実現するには、XML を解析する効率的な方法を提供する Python の xml.etree.ElementTree を利用できます。改善されたアプローチは次のとおりです。

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 構造の階層表現。これにより、 navigate.
  • 名前空間やコメントなどのさまざまな XML 機能をサポートします。

このアプローチに従うことで、pandas DataFrame を使用して複雑な XML データを表形式に効率的に変換し、追加のデータを有効にすることができます。操作と分析。

以上がXML データを Python で Pandas DataFrame に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。