Python 如何将序列传递给数据帧中的布尔函数?

Python 如何将序列传递给数据帧中的布尔函数?,python,pandas,dataframe,Python,Pandas,Dataframe,我试图使用一个用户定义的函数在一个数据框中创建一个新的列,它是从其他列计算出来的。我的函数从Python库(psychrolib)调用其他函数来执行该操作。我得到以下错误: ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 我知道您需要使用&、|和!在Pandas中工作时作为逻辑运算符(而不是and、or、not),但由于我使用的是

我试图使用一个用户定义的函数在一个数据框中创建一个新的列,它是从其他列计算出来的。我的函数从Python库(psychrolib)调用其他函数来执行该操作。我得到以下错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
我知道您需要使用&、|和!在Pandas中工作时作为逻辑运算符(而不是and、or、not),但由于我使用的是库中的函数,因此这不是一个选项。我在库中查找了代码以确定是否正确,并找到了以下摘录:

    if (TDryBulb < -148 or TDryBulb > 392):
        raise ValueError("Dry bulb temperature must be in range [-148, 392]°F")

df['vapor\u pressure']=df['T\u dry\u bulb']。应用(工艺蒸汽压力)
?谢谢你的建议,但不要掷骰子。另外,我正在寻找一种将多个参数从数据帧传递到函数中的方法。
df['vapor\u pressure']=df['T\u dry\u bulb']。apply(processvapor pressure)
?感谢您的建议,但不要冒险。另外,我正在寻找一种将多个参数从数据帧传递到函数的方法。
# Import libraries
import numpy as np
import psychrolib as psych
psych.SetUnitSystem(psych.IP) # Set unit system in psychrometric library to IP
import pandas as pd

# create example data

df = pd.DataFrame({'T_dry_bulb':[80,82,84,86,88,90]})

def processvaporpressure(t_db):
    # Calculate the vapor pressure from the a psychrometric library function
    # and then do something special to it.
    return psych.GetSatVapPres(t_db) + 0.5

df['vapor_pressure'] = df.apply(processvaporpressure,args=(df['T_dry_bulb']))