Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich XML-Daten effizient in einen Pandas DataFrame in Python konvertieren?

Wie kann ich XML-Daten effizient in einen Pandas DataFrame in Python konvertieren?

DDD
DDDOriginal
2024-11-16 13:25:03671Durchsuche

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

XML-Dokumente in Pandas DataFrames konvertieren

Beim Umgang mit XML-Daten ist es oft notwendig, die darin enthaltenen Informationen zu verarbeiten und zu analysieren. Pandas bietet hierfür ein praktisches Tool, mit dem Sie XML in strukturierte DataFrames konvertieren können.

Betrachten wir eine XML-Struktur wie die folgende:

<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>

Das Ziel besteht darin, dieses XML zu konvertieren in einen DataFrame mit Spalten für Schlüssel, Typ, Sprache, Funktion, Web und Daten.

Effizienter Ansatz mit ElementTree

Um dies zu erreichen, können wir Pythons XML nutzen .etree.ElementTree, das eine effiziente Möglichkeit zum Parsen von XML bietet. Hier ist ein verbesserter Ansatz:

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())))

Bei diesem Ansatz verwenden wir die Generatorfunktion iter_docs, um die Autoren- und Dokumentelemente zu durchlaufen und relevante Attribute und Daten zu extrahieren. Anschließend erstellen wir einen DataFrame aus der generierten Liste der Wörterbücher.

Zusätzliche Hinweise:

  • Wenn Ihr XML mehrere Autorenelemente enthält, können Sie diese verwenden eine weitere Generatorfunktion, um sie zu durchlaufen und die darin enthaltenen Dokumente zu durchlaufen.
  • Wenn das Stammelement Ihres XML nicht „author“ ist, passen Sie den Aufruf von etree.getroot() entsprechend an.

Vorteile der Verwendung von ElementTree:

  • Effizientes Parsen und Speichernutzung.
  • Bietet eine hierarchische Darstellung der XML-Struktur und erleichtert so die Navigation.
  • Unterstützt verschiedene XML-Funktionen wie Namespaces und Kommentare.

Mit diesem Ansatz können Sie mithilfe von Pandas DataFrames komplexe XML-Daten effizient in ein Tabellenformat konvertieren und so eine weitere Datenbearbeitung und -analyse ermöglichen.

Das obige ist der detaillierte Inhalt vonWie kann ich XML-Daten effizient in einen Pandas DataFrame in Python konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn