gpt4 book ai didi

python - 在python中使用来自pandas的read_excel为参数赋值

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

我想使用 pandas 读取 Excel 文件。我想将特定单元格分配给某些参数。

所以我的 Excel 包含 4 列。第一列包含位置“s”,第二列包含以年为单位的时间“t”,第三列和第四列是特定时间在特定位置可用的 2 种不同 Material 。前几行如下所示:

s        t          Biomasse       KWS
AT1 2025 234234 2323
AT1 2025.25 238208 0990
AT1 2025.5 20323 2939
AT2 2025 8888 2323
df = pd.read_excel("Inputdaten_Strom.xlsx", sheetname="Angebot_Nachfrage")
for m in M:
if m == "Biomasse":
i = 0
for s in S:
for t in T:
Ang[m,s,t] = df["Biomasse"][i]
i = i + 1
if m == "KWS":
i = 0
for s in S:
for t in T:
Ang[m,s,t] = df["KWS"][i]
i = i + 1
print Ang["Biomasse","AT1",2025.25]

这有效但非常静态,因为如果集合 S 与工作表中的 s 列不匹配,它将无法正常工作。我试过类似的东西:

Ang = {}
df = pd.read_excel("Inputdaten_Strom.xlsx", sheetname="Angebot_Nachfrage")
i = 0
for m in M:
if m == "Biomasse":
for s in df["s"]:
for t in T:
Ang[m,s,t] = df["Biomasse"][i]
i = i + 1

但它给了我一个关键错误。谁能帮助我如何正确有效地读取值?

最佳答案

我会使用 pivot 函数并将枢轴化的框架作为字典返回。我们需要从字典中删除具有空值的键并迭代以合并字典。

df_pivot = pd.pivot_table(df, columns=['s','t'], index='Biomasse', values='KWS')
lst= [{k: v for k, v in dct.items() if not math.isnan(v)} for dct in df_pivot.to_dict(orient='row')]
Ang = {}
for el in lst:
Ang.update({("Biomasse", key[0],key[1]):value for key, value in el.items()})

结果

{('Biomasse', 'AT2', 2025.0): 2323.0,
('Biomasse', 'AT1', 2025.5): 2939.0,
('Biomasse', 'AT1', 2025.0): 2323.0,
('Biomasse', 'AT1', 2025.25): 990.0}

关于python - 在python中使用来自pandas的read_excel为参数赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57326545/

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