如何从指定嵌套XML中提取Event数据创建Python DataFrame
处理方案
可以用Python的xml.etree.ElementTree解析XML片段,再结合pandas生成你需要的DataFrame,具体代码如下:
import xml.etree.ElementTree as ET import pandas as pd # 定义XML内容(也可替换为从文件读取的逻辑) xml_content = ''' </Section> <Section id="21" name="Event Strips" itemsCount="18"> <Event title="HR Min" start="10707646" end="10709446"/> <Event title="HR Max" start="1043646" end="1045446"/> <Event title="RR Min" start="12441170" end="12442970"/> <Event title="RR Max" start="14690429" end="14692229"/> </Section> <Section id="99" name="TimeDomainHRV" itemsCount="4"> <Info id="100" name="RRMean" value="725.99 ms"/> <Info id="101" name="SDNN" value="108.01 ms"/> </Section> ''' # 补全根节点并解析XML(原片段缺少根节点,需补充才能正常解析) root = ET.fromstring(f'<Root>{xml_content}</Root>') # 定位到id为21的Section节点 event_section = root.find(".//Section[@id='21']") # 提取所有Event标签的属性数据 event_data = [] for event in event_section.findall('Event'): event_data.append({ 'Event': event.get('title'), 'start': event.get('start'), 'end': event.get('end') }) # 生成DataFrame并输出目标格式 df = pd.DataFrame(event_data) print(df.to_string(index=False))
运行代码后会输出如下格式的结果:
Event start end HR Min 10707646 10709446 HR Max 1043646 1045446 RR Min 12441170 12442970 RR Max 14690429 14692229
内容的提问来源于stack exchange,提问作者Shourov
相关产品推荐
相关产品推荐

