解释函数错误

2024-04-29 04:42:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我成功地编写了我的第一个函数。但是我不明白:-) 我用一种简化的方法解决了我真正的问题。请参阅以下代码:

import pandas as pd
import matplotlib as plt
import numpy as np
from pyXSteam.XSteam import XSteam
steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS) 
T1_T_in = [398,397,395]
T1_p_in = [29,29,29]
T1_mPkt_in = [2.2,3,3.5]
def Power(druck,temp,menge):
    H = []
    Q = []
    for i in range(len(druck)): 
        H.append(steamTable.h_pt(druck[i],temp[i]))
        Q.append(H[i]*menge[i])
    return Q

t1Q=Power(T1_p_in,T1_T_in,T1_mPkt_in)
t3Q = Power(T3_p_in,T3_T_in,T3_mPkt_in)
print(t1Q)
print(t3Q)

它起作用了。现在真正的问题不同于我从excel文件中读取数据的方式。我收到了一条错误消息,并且(根据我从这个好的主页学到的知识:-)我在函数中添加了“.tolist()”,它就工作了。我不明白为什么我需要将其更改为列表?有人能给我解释一下吗?谢谢你的帮助

import pandas as pd
import matplotlib as plt
import numpy as np
from pyXSteam.XSteam import XSteam
steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS) 

pfad="XXX.xlsx"
df = pd.read_excel(pfad)

T1T_in = df.iloc[2:746,1]
T1p_in = df.iloc[2:746,2]
T1mPkt_in = df.iloc[2:746,3]

def Power(druck,temp,menge):
    H = []
    Q = []
    for i in range(len(druck)): 
        H.append(steamTable.h_pt(druck.tolist()[i],temp.tolist()[i]))
        Q.append(H[i]*menge.tolist()[i])
    return Q

t1Q=Power(T1p_in,T1T_in,T1mPkt_in)

t1Q[0:10]

Tags: inimportdfastemppdt1power
1条回答
网友
1楼 · 发布于 2024-04-29 04:42:15

第一个示例工作的原因是将T1_mPkt_in变量作为list传递到menge参数中:

T1_mPkt_in = [2.2,3,3.5]

第二个示例不起作用,因为您将T1_mPkt_in变量作为series而不是list传递到menge参数中:

T1mPkt_in = df.iloc[2:746,3]

如果打印出T1_mPkt_in的类型,您将得到:

<class 'pandas.core.series.Series'>

pandas中,要将series转换回list,可以调用.tolist()将数据存储在list中,以便正确地index

相关问题 更多 >