Python添加一个循环浏览字段的函数

在Excel中,我使用了如下计算:0.16667*10^((C15-121.1)10)。计算结果放在D14上。

数据框

在图片中,我想在列 “0 “的索引0上做如下计算:=0.16667*10^((91.03-121.1)10). 这意味着索引1上的temp被用于计算索引0上的列 “0”。整个列的计算必须是这样的

进一步解释。

    Temp     Calculation
0   90.01    0.16667*10^((91.03-121.1)/10)
1   91.03    0.16667*10^((95.06-121.1)/10)
2   95.06    0.16667*10^((100.07-121.1)/10)
3   100.07   0.16667*10^((103.00-121.1)/10)
4   103.00

所以看DF的计算,计算中的Tempparatures比当前的指数高一个Temp。

EDIT:

List1= [90.01, 91.03, 95.06, 100.07, 103.50]

test = pd.DataFrame(List1, columns=["Temp"])

然后我想添加计算。

test["calculation"] = 0.16667*10^((test["Temp"][1:]-121.1)/10)

结果出现以下错误:

TypeError: Cannot perform 'rxor' with a dtyped [float64] array and scalar of type [bool]

EDIT 2:

test["calculation"] = 0.16667*10**((test["Temp"][1:]-121.1)/10).reset_index()


test returns:

    Temp    calculation
0   90.01   1.6667
1   91.03   16.6670
2   95.06   166.6700
3   100.07  1666.7000
4   103.50  NaN

计算的方式是好的,但结果是不同的。但结果是不同的。当温度是100.07时,结果必须是0.001314。

test2 = 0.16667*10**((100.07-121.1)/10)

out: 0.0013147931580348442

解决方案:

你可以在数据框中引用整个列,并在它们上执行任何你想要的计算。

df["answer"] = 0.16667*10**((df["Temp"]-121.1)/10)

EDIT.我现在明白了,你想用数据框引用整个列,并对它们进行任何计算。

我现在明白了,你想用下一行来计算当前行;你可以把pandas系列当作列表,并把它们作为索引,即[1:]。

df["calculation"] = 0.16667*10**((df["Temp"][1:]-121.1)/10).reset_index()

这将使计算列中的最后一个位置为NaN,但如果你愿意,之后可以手动更改。

EDIT2: 疏忽了,^在python中是xor,**相当于power.reset_index()是需要的,否则偏移将在数据框架的开始,而不是结束。

EDIT3:

使用代码

test["calculation"] = 0.16667*10**((test["Temp"][1:]-121.1)/10).reset_index(drop=True)

我得到的结果是

     Temp  calculation
0   90.01     0.000164
1   91.03     0.000415
2   95.06     0.001315
3  100.07     0.002896
4  103.50          NaN

给TA打赏
共{{data.count}}人
人已打赏
未分类

在PHP本地soapClient中的SoapRequest格式化。

2022-9-9 3:40:19

未分类

最多匹配两个词的Regex [关闭] 。

2022-9-9 3:40:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索