【问题标题】:convert XML to DataFrame using python script使用 python 脚本将 XML 转换为 DataFrame
【发布时间】:2023-04-02 16:16:01
【问题描述】:

我正在尝试将以下 xml 数据转换为数据框。

<?xml version="1.0" encoding="utf-8"?>
<TEST>
    <Node1L1>1</Node1L1>
    <Node2L1>FP</Node2L1>
    <SUBL1>
        <M>
            <PAR>
                <NAME>A</NAME>
                <TYPE>f</TYPE>
                <DESC />
                <VAL>1,2,3,4,5,6</VAL>
            </PAR>
            <PAR>
                <NAME>B</NAME>
                <TYPE>f</TYPE>
                <DESC />
                <VAL>10,20,30,40,50,60</VAL>
            </PAR>
            <PAR>
                <NAME>C</NAME>
                <TYPE>f</TYPE>
                <DESC />
                <VAL>11,22,33,44,55,66</VAL>
            </PAR>
            <PAR>
                <NAME>D</NAME>
                <TYPE>f</TYPE>
                <DESC />
                <VAL>a,b,c,d,e,f</VAL>
            </PAR>
            <PAR>
                <NAME>E</NAME>
                <TYPE>f</TYPE>
                <DESC />
                <VAL>aa,bb,cc,dd,ee,ff</VAL>
            </PAR>
        </M>
        <M>
            <PAR>
                <NAME>A_test</NAME>
                <VAL>0.0,0.1,0.2,0.3,0.4,0.5</VAL>
            </PAR>
        </M>            
    </SUBL1>
</TEST>

我只需要提取名称 A,C,E

的第一个 M 标记 PAR 子节点

这只是一个示例文件,但我拥有的文件很大,在 2 个 M 标签中有很多 PAR 标签。我能够使用下面的代码进行 XML 转换,但它也需要第二个 M 标签 PAR 标签。

df = pd.read_xml(path2file, xpath="//*[local-name()='PAR']")

我正在尝试寻找一种方法来改进xpath= 字符串,以便它只会将第一个 M 标记数据提取到数据框中。
另外,如果有任何替代方法,请告诉我。我也想避免节点中的空 DESC 列。

【问题讨论】:

标签:
python
pandas
xml
dataframe
lxml