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

Comment puis-je convertir efficacement du XML en Pandas DataFrame ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-30 19:46:11700parcourir

How can I convert XML to a Pandas DataFrame efficiently?

Conversion efficace de XML en un DataFrame Pandas

Les fichiers XML peuvent souvent contenir des données précieuses qui peuvent être analysées à l'aide d'outils tels que Pandas. Pour convertir un fichier XML en DataFrame, une approche efficace peut être trouvée ci-dessous :

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

Explication :

  • La fonction génératrice iter_docs itère sur le Document XML, extrayant les attributs de l'auteur, les attributs du document et le contenu du nœud de texte du document dans un dictionnaire.
  • Le Pandas DataFrame est ensuite construit à partir d'une liste de dictionnaires générés par la fonction iter_docs.

Notes supplémentaires :

L'exemple XML fourni dans la question suppose un seul auteur. S'il y a plusieurs auteurs, une fonction génératrice supplémentaire, iter_author, peut être utilisée pour parcourir chaque auteur et générer tous leurs dictionnaires de documents respectifs. Cela nécessiterait de modifier la dernière ligne de l'exemple de code en :

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

Pour plus de conseils sur l'utilisation de XML en Python, reportez-vous au didacticiel ElementTree dans la documentation de la bibliothèque XML.

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!

Déclaration:
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