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

机械计算结果Python分析:最优数据结构与Excel导出格式问题

机械计算结果分析与Excel导出优化

1. 大数据量下的数据结构选择

字典列表在中小数据量(几万到几十万条)下完全够用,优势是直观、易实现。但当数据量达到百万级以上时,它会占用大量内存(所有数据预存在内存中),此时更推荐以下方案:

推荐方案:生成器替代列表

用生成器迭代生成数据字典,避免一次性加载所有数据到内存,处理大文件时内存占用更低:

def load_calculation_data(files):
    for file in files:
        filename = file.split(".")[0]
        with open(file, "r") as f:
            for row in f:
                # 替换为你的数据提取逻辑
                load_number = ...
                datapoint_id = ...
                component_id = ...
                value = float(row)
                yield {
                    'Computation': filename,
                    'Load Case': load_number,
                    'Datapoint': datapoint_id,
                    'Compo': component_id,
                    'Value': value
                }

# 直接从生成器创建DataFrame,无需预存所有字典
df = pd.DataFrame(load_calculation_data(["computation1.out", "computation2.out"]))

其他注意事项

  • 如果数据格式固定,可直接在读取文件时构造DataFrame行数据,跳过字典列表环节;
  • 嵌套字典不推荐,转成DataFrame需要额外层级拆解逻辑,反而增加复杂度。

2. 构建指定格式的多层表头Excel

要实现Computation -> Load Case -> Component的多层表头结构,需利用pandas的多层索引(MultiIndex),结合透视表或索引重组完成数据转换:

具体实现代码

import pandas as pd

# 先统一列名(确保和数据提取逻辑一致)
df = df.rename(columns={'LoadCase': 'Load Case', 'Component': 'Compo'})

# 构建透视表,生成多层列索引
pivot_df = df.pivot_table(
    index='Datapoint',  # 行索引为数据点ID
    columns=['Computation', 'Load Case', 'Compo'],  # 列层级:计算类型 -> 载荷工况 -> 分量
    values='Value',
    aggfunc='first'  # 每个(datapoint, 计算类型, 载荷, 分量)组合唯一,用first即可
)

# 确保分量按1/2/3顺序排列(可选)
pivot_df = pivot_df.reindex(
    sorted(pivot_df.columns, key=lambda x: (x[0], x[1], x[2])),
    axis=1
)

# 导出Excel,merge_cells=True自动合并相同表头,贴合需求格式
pivot_df.to_excel(
    "myoutput.xlsx",
    sheet_name='Data',
    float_format="%.4f",
    merge_cells=True
)

效果说明

  • 导出的Excel会自动生成三层表头:第一层为计算类型(computation1/computation2),第二层为载荷工况(loadcase1/loadcase2),第三层为分量(compo1/compo2/compo3);
  • 行索引为数据点ID,每个单元格对应数据点在指定计算、载荷、分量下的数值;
  • merge_cells=True会让相同的表头单元格自动合并,和你给出的示例格式完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 12:54:21