gpt4 book ai didi

python - 具有多个列索引和标题行的 Excel 通过 pandas 转换为 Python 字典

转载 作者:太空宇宙 更新时间:2023-11-04 04:04:50 25 4
gpt4 key购买 nike

我正在使用 Pyomo,我正在尝试为某些参数输入一些 4-D 数据。

我的 Excel 电子表格中的数据如下所示:

Image

可以在此处找到原始数据的链接:

Link to spreadsheet

我想在 Python 中导入数据,并将元组中的每个列索引和标题值作为字典的键,并将值作为字典的值。

基本上,预期的输出应该是这样的:

p = {('Heat', 'Site 1', 1, 1): 14,
('Heat', 'Site 1', 1, 2): 16,
('Heat', 'Site 1', 1, 3): 10,
('Heat', 'Site 1', 2, 1): 13,
('Heat', 'Site 1', 2, 2): 13,
('Heat', 'Site 1', 2, 3): 13,
('Cool', 'Site 1', 1, 1): 5,
('Heat', 'Site 1', 1, 2): 6,
...
('Elec', 'Site 2', 2, 1): 11,
('Elec', 'Site 2', 2, 2): 15,
('Elec', 'Site 2', 2, 3): 15}

我的想法是先使用pandas导入excel文件,然后使用to_dict方法。

我所做的是:

import pandas as pd
Loads = pd.read_excel("Time_series_parameters.xlsx", index_col=[0,1], header = [0,1])

效果很好,我能够得到一个包含两个索引列和两个标题行的数据框:

       Heat   Cool   Elec   Heat   Cool   Elec
Time Site 1 Site 1 Site 1 Site 2 Site 2 Site 2
1 1 14 5 13 10 20 14
2 16 6 11 10 14 10
3 10 7 14 11 18 11
2 1 13 8 14 20 19 11
2 13 7 11 14 15 15
3 13 6 13 12 19 15

但是,无论我从那里为获得预期结果所做的任何尝试都失败了……to_dict 方法中的所有设置都没有给我预期的结果。

因此,如果有人能在这里提供帮助,我将不胜感激。

最佳答案

我的解决方案是:

import pandas as pd
Loads = pd.read_excel("Time_series_parameters.xlsx", index_col=[0, 1], header=[0, 1])

out = {}
for index, inner in Loads.iteritems():
for sec_index, value in inner.iteritems():
out[index[0], index[1], sec_index[0], sec_index[1]] = value

结果输出是:

{('Heat', 'Site 1', 1, 1): 14,
('Cool', 'Site 1', 1, 1): 5,
('Elec', 'Site 1', 1, 1): 13,
('Heat', 'Site 2', 1, 1): 10,
('Cool', 'Site 2', 1, 1): 20,
('Elec', 'Site 2', 1, 1): 14,
('Heat', 'Site 1', 1, 2): 16,
('Cool', 'Site 1', 1, 2): 6,
('Elec', 'Site 1', 1, 2): 11,
('Heat', 'Site 2', 1, 2): 10,
...

关于python - 具有多个列索引和标题行的 Excel 通过 pandas 转换为 Python 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57559988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com