You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将指定XML数据转换为目标格式的DataFrame?

如何将指定XML转换为目标格式的DataFrame

没问题,我来帮你搞定这个需求!我们可以用Python的xml.etree.ElementTree来解析XML,再结合pandas构建符合预期的DataFrame。下面是完整的实现步骤和代码:

import xml.etree.ElementTree as ET
import pandas as pd

# 你的XML原始数据
xml_content = """<start> 
<main index='1' sub='english' > 
<name value='1' text='hi this is xxx' /> 
<name value='2' text='isnt this funny' /> 
</main> 
<main index='2' sub='french'> 
<name value='1' text='Comment vas-tu' /> 
<name value='2' text='sil vous plaît résoudre ce' /> 
</main> 
</start>"""

# 解析XML字符串
root = ET.fromstring(xml_content)

# 初始化存储数据的列表
records = []
# 定义main节点index到A/B的映射
index_mapping = {'1': 'A', '2': 'B'}

# 遍历每个main节点及其子节点
for main_node in root.findall('main'):
    current_main_idx = main_node.attrib['index']
    # 遍历当前main下的所有name节点
    for name_node in main_node.findall('name'):
        records.append({
            'mainindex': index_mapping[current_main_idx],
            'namevalue': name_node.attrib['value'],
            'text': name_node.attrib['text']
        })

# 转换为DataFrame并调整列顺序
result_df = pd.DataFrame(records)[['mainindex', 'namevalue', 'text']]

# 查看结果
print(result_df)

运行后你会得到完全符合预期的DataFrame:

mainindex namevalue                          text
0         A         1                hi this is xxx
1         A         2              isnt this funny
2         B         1              Comment vas-tu
3         B         2  sil vous plaît résoudre ce

关键步骤说明:

  • XML解析:用ET.fromstring()直接解析XML字符串,获取根节点后,通过findall()定位所有main和name节点。
  • 数据映射:通过字典index_mapping把main节点的index属性值('1'、'2')转换成你需要的'A'、'B'。
  • 数据收集:嵌套遍历节点,把每条需要的属性值组装成字典存入列表,最后用pandas转换为DataFrame,调整列顺序匹配预期格式。

内容的提问来源于stack exchange,提问作者pylearner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:30:58