使用从Postgres提取的数据帧在Python中创建计算列(使用If语句)

2024-05-23 23:19:12 发布

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

Python相当陌生,我正试图使用If函数在我的DataFrame上创建一个计算列。在

我尝试过使用直接从DataFrame引用的字段,以及将它们分配给变量并将它们转换为序列(如下代码所示):

f4=(使用pscyopg2和SQL查询从我的Postgres数据库提取的数据帧)(379,7)

n = f4['id']

wv = f4['watermark_value']

anet = f4['a_net_revenue']

bnet = f4['b_net_revenue']

def adj_calc():

    return anet-bnet-wv if bnet-wv<0 else bnet-wv

f4['watermark_adj'] = adj_calc()

我收到以下错误: ValueError:序列的真值是不明确的。使用a.empty、a.bool()、a.item()、a.any()或a.all()

通过我的研究,我发现当你试图直接从DataFrame进行计算时,你可能会在Pandas中遇到问题,但是我很难找到一个解决方案,或者我应该使用哪种数据类型的信息。在

本质上,我试图在f4 datafame上创建一个计算列,它遵循上面的逻辑。在

谢谢!在


Tags: 函数dataframenetifcalc序列watermarkbnet