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

如何将epd:amount下的OrderedDict转换为指定列的pandas DataFrame

解决方案

直接通过pandas原生的DataFrame构造方法即可实现需求,无需复杂的遍历处理,示例代码如下:

from collections import OrderedDict
import pandas as pd

# 替换为你实际存储原始OrderedDict的变量名,这里用raw_data指代你提供的原始数据
raw_data = OrderedDict([('epd:amount',
                         [OrderedDict([('@xmlns:epd',
                                        'http://www.iai.kit.edu/EPD/2013'),
                                       ('@epd:module', 'A1'),
                                       ('#text', '0.0')]),
                          OrderedDict([('@xmlns:epd',
                                        'http://www.iai.kit.edu/EPD/2013'),
                                       ('@epd:module', 'A2'),
                                       ('#text', '0.0')]),
                          OrderedDict([('@xmlns:epd',
                                        'http://www.iai.kit.edu/EPD/2013'),
                                       ('@epd:module', 'A3'),
                                       ('#text', '0.927477418791169')]),
                          OrderedDict([('@xmlns:epd',
                                        'http://www.iai.kit.edu/EPD/2013'),
                                       ('@epd:module', 'A1-A3'),
                                       ('#text', '0.927477418791169')]),
                          OrderedDict([('@xmlns:epd',
                                        'http://www.iai.kit.edu/EPD/2013'),
                                       ('@epd:module', 'A5'),
                                       ('#text', '5.83315996933576')]),
                          OrderedDict([('@xmlns:epd',
                                        'http://www.iai.kit.edu/EPD/2013'),
                                       ('@epd:module', 'C2'),
                                       ('#text', '0.0')]),
                          OrderedDict([('@xmlns:epd',
                                        'http://www.iai.kit.edu/EPD/2013'),
                                       ('@epd:module', 'C3'),
                                       ('#text', '0.0')]),
                          OrderedDict([('@xmlns:epd',
                                        'http://www.iai.kit.edu/EPD/2013'),
                                       ('@epd:module', 'D'),
                                       ('@epd:scenario', 'energetisch'),
                                       ('#text', '0.0')]),
                          OrderedDict([('@xmlns:epd',
                                        'http://www.iai.kit.edu/EPD/2013'),
                                       ('@epd:module', 'D'),
                                       ('@epd:scenario', 'stofflich'),
                                       ('#text', '0.0')])])])

# 提取epd:amount对应的字典列表
amount_list = raw_data['epd:amount']
# 生成DataFrame时直接指定要保留的三列,自动过滤多余字段(比如@epd:scenario)
df = pd.DataFrame(amount_list, columns=['@xmlns:epd', '@epd:module', '#text'])

# 若需要将#text列转换为数值类型,可补充以下代码
# df['#text'] = pd.to_numeric(df['#text'])

上述代码生成的DataFrame会严格保留要求的3列,部分条目携带的额外字段会被自动排除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:42:02