将XML文件(带有嵌入式词典)解析为Pandas Dataframe

时间:2018-06-27 10:04:25

标签: python xml pandas dataframe

我目前正在一个项目中,我需要解析一个大型XML文件(6gbs),然后对数据进行一些转换。最初我在文件大小方面遇到了一些问题,但是我设法建立了一个循环,在运行后转储内存,所以现在我真的很想将数据放入pandas数据框中,因为我认为这对于我需要的数据非常理想去做。这是它的简单循环:

import pandas as pd
import numpy as np
import xml.etree.cElementTree as ET

for event, elem in ET.iterparse(XML_FILE):
    if elem.tag == "record":
        if (elem.attrib.get("category") != 'X') & (elem.attrib.get("category") != 'Y'):
            if (elem.attrib.get("sub-category") == 'Z'):
                for node in elem.getiterator():
                    print(node.attrib)
                break
        elem.clear()

使用以上代码,我可以遍历XML文件,因为我想要的每个记录都在记录标记之间。从本质上讲,我需要遍历该记录标签内的分支,并将它们解析为以node.tag为列,并以node.attrib为值的熊猫数据框。

但是,我遇到了将标签转换为列标题以及在将它们存储为字典值时解析node.attrib的问题。我是否可以解析这个XML文件,从记录到记录,再将分支解析为数据框,可能将字典值存储为indeces或在pandas数据框中存储?

0 个答案:

没有答案