Bagaimanakah saya boleh menukar data XML dengan cekap kepada Pandas DataFrame dalam Python?

DDD
Lepaskan: 2024-11-16 13:25:03
asal
621 orang telah melayarinya

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

Menukar Dokumen XML kepada Pandas DataFrames

Apabila berurusan dengan data XML, sering kali menjadi perlu untuk memproses dan menganalisis maklumat di dalamnya. Pandas menawarkan alat yang mudah untuk tujuan ini, membolehkan anda menukar XML kepada DataFrames berstruktur.

Mari kita pertimbangkan struktur XML seperti yang diberikan:

<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>
Salin selepas log masuk

Matlamatnya adalah untuk menukar XML ini ke dalam DataFrame dengan lajur untuk kunci, jenis, bahasa, ciri, web dan data.

Cekap Pendekatan dengan ElementTree

Untuk mencapainya, kami boleh memanfaatkan xml.etree.ElementTree Python, yang menyediakan cara yang cekap untuk menghuraikan XML. Berikut ialah pendekatan yang dipertingkatkan:

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())))
Salin selepas log masuk

Dalam pendekatan ini, kami menggunakan fungsi penjana iter_docs untuk mengulangi elemen pengarang dan dokumen, mengekstrak atribut dan data yang berkaitan. Kemudian, kami mencipta DataFrame daripada senarai kamus yang dijana.

Nota tambahan:

  • Jika terdapat berbilang elemen pengarang dalam XML anda, anda boleh menggunakan fungsi penjana lain untuk menggelungkannya dan mengulangi dokumen dalam setiap satu.
  • Jika elemen akar XML anda bukan pengarang, laraskan panggilan etree.getroot() sewajarnya.

Faedah menggunakan ElementTree:

  • Penghuraian dan penggunaan memori yang cekap.
  • Menyediakan perwakilan hierarki struktur XML, menjadikannya mudah untuk navigasi.
  • Menyokong pelbagai ciri XML seperti ruang nama dan ulasan.

Dengan mengikuti pendekatan ini, anda boleh menukar data XML kompleks kepada format jadual dengan cekap menggunakan DataFrames panda, membolehkan data selanjutnya manipulasi dan analisis.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menukar data XML dengan cekap kepada Pandas DataFrame dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan