【问题标题】:multiplying column of the file by exponential function将文件的列乘以指数函数
【发布时间】:2021-11-25 13:35:31
【问题描述】:

我正在努力将一个列文件乘以指数函数 所以我的方程式是 y=10.43^(-x/3.0678)+0.654 列中的第一个值是方程中的 X,到目前为止,我只能乘以标量,但不能使用指数函数

文件看起来像这样

8.09
5.7
5.1713
4.74
4.41
4.14
3.29
3.16
2.85
2.52
2.25
2.027
1.7
1.509
0.76
0.3
0.1 

所以在计算之后,我的 Y 应该得到这些值

8.7     0.655294908
8.09    0.656064021
5.7     0.6668238549
5.1713  0.6732091509
4.74    0.6807096436
4.41    0.6883719253
4.14    0.6962497391
3.29    0.734902438
3.16    0.7433536016
2.85    0.7672424605
2.52    0.7997286905
2.25    0.8331287249
2.027   0.8664148415
1.7    0.926724933
1.509   0.9695896976
0.76    1.213417197
0.3    1.449100509
0.1    1.580418766````

到目前为止,这段代码对我有用,但离我想要的还很远

from scipy.optimize import minimize_scalar 
import math 
col_list = ["Position"]
df = pd.read_csv("force.dat", usecols=col_list)
print(df)
A = df["Position"] 
X = ((-A/3.0678+0.0.654)
print(X)

【问题讨论】:

    标签: python function exponential


    【解决方案1】:

    如果我理解正确,您只是想将函数应用于 pandas 数据框中的列,对吗?如果是这样,您可以定义函数:

    def foo(x):
        y = 10.43 ** (-x/3.0678)+0.654
        return y
    

    并将其应用于新列中的 df。如果A 是具有x 值的列,那么y 将是

    df['y'] = df.apply(foo,axis=1)
    

    现在print(df) 应该会在您的问题中为您提供示例结果。

    【讨论】:

      【解决方案2】:

      你可以在一行中完成:

      >>> df['y'] = 10.43 ** (- df['x']/3.0678)+0.654
      >>> print(df)
      
               x         y
      0   8.0900  0.656064
      1   5.7000  0.666824
      2   5.1713  0.673209
      3   4.7400  0.680710
      4   4.4100  0.688372
      5   4.1400  0.696250
      6   3.2900  0.734902
      7   3.1600  0.743354
      8   2.8500  0.767242
      9   2.5200  0.799729
      10  2.2500  0.833129
      11  2.0270  0.866415
      12  1.7000  0.926725
      13  1.5090  0.969590
      14  0.7600  1.213417
      15  0.3000  1.449101
      16  0.1000  1.580419
      

      【讨论】:

        猜你喜欢
        • 2019-06-09
        • 2017-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多