我有一些数据需要从XML解析到pandas DataFrame中。XML数据大致如下:
<tracks>
<track name="trackname1" variants="1,2,3,4,5">
<variant var="1,2,3">
<leg time="21:23" route_id="5" stop_id="103" serial="1"/>
<leg time="21:26" route_id="5" stop_id="17" serial="2"/>
<leg time="21:30" route_id="5" stop_id="38" serial="3"/>
<leg time="20:57" route_id="8" stop_id="101" serial="1"/>
<leg time="21:01" route_id="8" stop_id="59" serial="2"/>
...
</variant>
<variant var="4,5">
... more leg elements
</variant>
</track>
<track name="trackname2" variants="1,2,3,4,5,6,7">
<variant var="1">
... more leg elements
</variant>
<variant var="2,3,4,5,7">
... more leg elements
</variant>
</track>
</tracks>
我正在将此导入pandas,因为我需要能够将此数据与其他DataFrame连接,并且我需要能够查询类似于“获取route_id 5的变体1的所有legs”的内容。
我正在尝试弄清楚如何在pandas DataFrame中实现这一点。 我应该创建一个类似于以下内容的DataFrame吗?
track_name variants time route_id stop_id serial
"trackname1" "1,2,3" "21:23" "5" "103" "1"
"trackname1" "1,2,3" "21:26" "5" "17" "2"
...
"trackname1" "4,5" "21:20" "5" "103" "1"
...
"trackname2" "1" "20:59" "3" "45" "1"
... you get the point
如果这是正确的方法,我该如何(高效地)提取例如“路线id为5上3号变体的所有行”?注意,这应该给我所有在变体列列表中具有3的行,而不仅仅是仅在变体列中有“3”的行。
是否有一种构建DataFrame的不同方法可以使这更容易?我应该使用除pandas之外的其他东西吗?