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

如何借助油井名称列表自动命名DataFrame?

问题

我有多口油井,每口油井分属某个分支,多个分支共同构成一个油田。我通过循环对每口油井执行相同操作:

items=['1','5','8','22','2']
for item in items:
     well=item 

该循环会从数据库加载数据、清洗数据,计算每口油井的产量、压力等参数,同时生成图表,并将输出结果写入Excel文件,文件中包含名称为1、5、8、22、2的工作表。但后续我需要汇总各分支的产量、压力等数据,再将分支数据汇总为油田数据。

目前我只能手动编写代码读取数据并汇总:

well1=pd.read_excel('results.xlsx ', sheet_name='1')
well5=pd.read_excel('results.xlsx ', sheet_name='5')
branch['rate']=well1['rate']+well5['rate'] 

请问是否可以借助上述油井名称列表为生成的DataFrame命名,以替代手动命名的方式?

解决方案

当然可以,别再单独给每个油井创建独立的DataFrame变量,用字典存储所有油井的DataFrame是更高效的方案,完全能借助油井名称列表实现自动化:

1. 批量读取所有油井数据到字典

import pandas as pd

items = ['1','5','8','22','2']
well_data = {}  # 字典的key是油井编号,value是对应油井的DataFrame

for well_id in items:
    well_data[well_id] = pd.read_excel('results.xlsx', sheet_name=well_id)

之后你可以通过well_data['1']、well_data['5']直接访问对应油井的DataFrame,不用手动逐个命名变量。

2. 按分支批量汇总数据

先定义好分支和油井的对应关系(比如branch_wells = {'分支A': ['1','5'], '分支B': ['8','22'], '分支C': ['2']}),再批量计算:

branch_summary = {}

for branch_name, wells in branch_wells.items():
    # 汇总该分支所有油井的产量
    branch_rate = pd.concat([well_data[well]['rate'] for well in wells], axis=1).sum(axis=1)
    # 同理汇总压力参数
    branch_pressure = pd.concat([well_data[well]['pressure'] for well in wells], axis=1).sum(axis=1)
    
    # 组合成分支汇总的DataFrame
    branch_summary[branch_name] = pd.DataFrame({
        'rate': branch_rate,
        'pressure': branch_pressure
    })

3. 汇总为油田总数据

把所有分支的汇总结果再求和即可:

field_summary = pd.concat(branch_summary.values(), axis=1).sum(axis=1)

这种方式彻底摆脱了手动命名的繁琐,扩展性也极强——后续新增油井或分支,只要更新对应的列表/字典就行,不用修改大量重复代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 15:16:08