如何从Excel各工作表创建指定格式的Python字典?
实现方案
1. 导入依赖库
import pandas as pd import numpy as np
2. 优化Excel读取方式(可选,替代你当前的逐个读取)
一次性读取所有工作表,减少重复代码:
# 读取所有工作表,返回结构为 {工作表名: 对应DataFrame} 的字典 all_sheets = pd.read_excel('export_3.xlsx', header=None, sheet_name=None)
3. 定义转换函数
这个函数负责把单个工作表的DataFrame转换成你需要的字典格式:
def convert_to_target_dict(df): # 将第一行设为列名(对应地区名称) df.columns = df.iloc[0] # 从第二行开始取有效数据,重置索引 data_df = df[1:].reset_index(drop=True) # 生成目标字典:键为地区名,值为numpy数组 result_dict = {region: data_df[region].to_numpy(dtype=np.float64) for region in data_df.columns} return result_dict
4. 生成目标字典
比如处理你提到的EPA工作表:
# 如果用优化后的读取方式 epa_result = convert_to_target_dict(all_sheets['EPA']) # 如果用你已读取的contoh1(即EPA工作表) # epa_result = convert_to_target_dict(contoh1)
补充说明
- 如果你的工作表第一行不是地区名称,需要调整
df.iloc[0]的索引,比如改成df.iloc[1]对应第二行作为列名 - 如果数据中有空值,可以在转换数组前添加填充逻辑,比如
data_df[region].fillna(0).to_numpy(...) - 其他工作表(如
SHORT EPA等)都可以用同一个函数转换,只需传入对应的DataFrame即可
内容的提问来源于stack exchange,提问作者iyya
相关产品推荐
相关产品推荐

