Pandas数据帧的Python集成



我有以下带有2列的panda数据帧df,看起来像:

0  0
1. 22
2. 34
3. 21
4. 21
5. 92

如果我们将第一列绘制为x轴,将第二列绘制为y轴,我想积分这条曲线下的面积。我尝试使用scipy(from scipy import integrate(中的集成模块来实现这一点,并应用了以下内容,正如我在网上的示例中看到的那样:

print(df.integrate)

然而,集成功能似乎不起作用。我收到错误:

数据帧对象没有属性集成

我该怎么做?

谢谢

您希望在给定固定数据样本的情况下进行数值积分。Scipy包列出了一些实现这一点的方法:https://docs.scipy.org/doc/scipy/reference/integrate.html#integrating-给定固定样本的函数

对于您的数据,梯形可能是最直接的。您可以为函数提供yx值。您没有公布数据帧的列名,所以我使用0索引表示x,使用1索引表示y值

from scipy.integrate import trapz
trapz(df.iloc[:, 1], df.iloc[:, 0])

由于integrate是一个scipy方法,而不是panda方法,因此需要如下调用它:

from scipy.integrate import trapz, simps
print(trapz(*args))

https://docs.scipy.org/doc/scipy/reference/tutorial/integrate.html

试试这个

import pandas as pd
import numpy as np
def integrate(x, y):
area = np.trapz(y=y, x=x)
return area
df = pd.DataFrame({'x':[0, 1, 2, 3, 4, 4, 5],'y':[0, 1, 3, 3, 5, 6, 7]})
x = df.x.values
y = df.y.values
print(integrate(x, y))

最新更新