【发布时间】:2019-06-02 02:21:39
【问题描述】:
我有一个时间序列的气候数据和一些恒定的大气值(气压等),我想在公式中使用它们来计算潜在蒸散量。公式写成如下:
LET_a= (delta * (Rnet + G) + pa * cp * (VPD/Ra)) / (delta + pc * (1 + rs/Ra))
cp 是一个常数值(整数) rs 是一个常数值(浮点数) 其余的都是具有 300000 加值的系列。
样本df。具有相似的值。
df=pd.DataFrame([[0.078,-61.36,49.56,1.248,0.155,468.57],[0.077,-58.38,50.14,1.249,0.13,1968.02],[0.078,-54.44,50.36,1.249,0.12,3061.366]])
df.columns=['delta', 'Rnet', 'G', 'pa', 'VPD', 'Ra',]
cp=1005
rs=79.36
pc=0.0663
这三行的预期结果应如下所示: -3.25, -3.77, -1.83
下面的代码与上面的代码相同,只是手动输入(使用示例数据的第一行并产生正确的结果。
LET_1 = (0.078 * (-61.36+49.56)+1.248*1005*(0.155/468.57)) /( 0.078 + 0.0663 * (1 + 79.37/468.57))
LET_1=-3.25
问题是当我运行这段代码时,数字发生了一些事情(我没有得到正确的结果),我不知道为什么。
是因为系列和花车的混合吗?它是否需要更多()或不同的写作方式?
理论上它应该将公式应用于系列中的每个值并产生一个新系列。
当我只对数字使用相同的公式时,我得到了正确的结果。所以它一定是代码的“拼写”中的东西。
非常感谢任何建议!
【问题讨论】:
-
请提供您的数据集。
-
您能否将此添加到您的问题而不是评论中?此外,请重写您的代码,以便可以使用 DataFrame 中给出的数据执行它。发布预期的输出也会很棒。使用您的样本数据,我的结果是
[1811.175853, 1203.009187]。这是正确的/符合预期的吗? -
感谢您编辑您的问题并添加示例数据!您还可以添加预期的输出吗?
标签: python pandas time-series