将python xml文件转换为数据帧
我有一个xml文件,格式如下:将python xml文件转换为数据帧,python,xml,pandas,elementtree,Python,Xml,Pandas,Elementtree,我有一个xml文件,格式如下: <table name="ecat"> <tuple> <atom name="TaxAccNo1">test</atom> <atom name="TaxAccNo2">00005504</atom> <atom name="TaxAccNo3">1</atom> <atom name="irn">100107<
<table name="ecat">
<tuple>
<atom name="TaxAccNo1">test</atom>
<atom name="TaxAccNo2">00005504</atom>
<atom name="TaxAccNo3">1</atom>
<atom name="irn">100107</atom>
</tuple>
<tuple>
<atom name="TaxAccNo1">test</atom>
<atom name="TaxAccNo2">00005505</atom>
<atom name="TaxAccNo3">2</atom>
<atom name="irn">100108</atom>
</tuple>
<tuple>
<atom name="TaxAccNo1">test</atom>
<atom name="TaxAccNo2">00005506</atom>
<atom name="TaxAccNo3">3</atom>
<atom name="irn">100109</atom>
</tuple>
</table>
我该怎么做 您可以使用python的xml和列表/目录理解:
In [11]: import xml
In [12]: e = xml.etree.ElementTree.parse(open("foo.xml"))
In [13]: pd.DataFrame([{a.get('name'): a.text for a in t} for t in e.findall("tuple")])
Out[13]:
TaxAccNo1 TaxAccNo2 TaxAccNo3 irn
0 test 00005504 1 100107
1 test 00005505 2 100108
2 test 00005506 3 100109
检查此选项可能会有所帮助:我很惊讶没有read_xml(read_html没有我记得的那么丰富)@AndyHayden确切地说,我们需要它。:)
In [11]: import xml
In [12]: e = xml.etree.ElementTree.parse(open("foo.xml"))
In [13]: pd.DataFrame([{a.get('name'): a.text for a in t} for t in e.findall("tuple")])
Out[13]:
TaxAccNo1 TaxAccNo2 TaxAccNo3 irn
0 test 00005504 1 100107
1 test 00005505 2 100108
2 test 00005506 3 100109