Maison > développement back-end > Tutoriel Python > Comment puis-je convertir efficacement des données XML en un Pandas DataFrame en Python ?

Comment puis-je convertir efficacement des données XML en un Pandas DataFrame en Python ?

DDD
Libérer: 2024-11-16 13:25:03
original
695 Les gens l'ont consulté

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

Conversion de documents XML en DataFrames Pandas

Lors du traitement de données XML, il devient souvent nécessaire de traiter et d'analyser les informations qu'elles contiennent. Pandas propose un outil pratique à cet effet, vous permettant de convertir du XML en DataFrames structurés.

Considérons une structure XML comme celle donnée :

<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>
Copier après la connexion

Le but est de convertir ce XML dans un DataFrame avec des colonnes pour la clé, le type, la langue, la fonctionnalité, le Web et les données.

Approche efficace avec ElementTree

Pour ce faire, nous pouvons exploiter xml.etree.ElementTree de Python, qui fournit un moyen efficace d'analyser XML. Voici une approche améliorée :

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())))
Copier après la connexion

Dans cette approche, nous utilisons la fonction génératrice iter_docs pour parcourir les éléments d'auteur et de document, en extrayant les attributs et les données pertinents. Ensuite, nous créons un DataFrame à partir de la liste de dictionnaires générée.

Notes supplémentaires :

  • S'il y a plusieurs éléments d'auteur dans votre XML, vous pouvez utiliser une autre fonction génératrice pour les parcourir et parcourir les documents qu'ils contiennent.
  • Si l'élément racine de votre XML n'est pas l'auteur, ajustez le etree.getroot() appelle en conséquence.

Avantages de l'utilisation d'ElementTree :

  • Analyse efficace et utilisation de la mémoire.
  • Fournit une représentation hiérarchique de la structure XML, facilitant la navigation.
  • Prend en charge divers XML des fonctionnalités telles que les espaces de noms et les commentaires.

En suivant cette approche, vous pouvez convertir efficacement des données XML complexes en un format tabulaire à l'aide de pandas DataFrames, permettant ainsi une manipulation et une analyse plus approfondies des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal