Maison >développement back-end >Tutoriel Python >Comment puis-je convertir efficacement des données XML en un Pandas DataFrame en Python ?
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>
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())))
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 :
Avantages de l'utilisation d'ElementTree :
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!