Pandas DataFrame列数值积分

时髦更多

目前,我有一个DataFrame,如下所示:

Device   TimeSec  Current  
 1       0.1      0.02
 1       0.25     0.05
 1       0.32     0.07
 1       0.45     0.12
 1       1.32     0.34
 1       2.37     2.24
 2       0.22     0.56
 2       0.34     0.79
 2       1.87     2.76
 2       3.21     3.11
 3       0.16     1.87
 3       1.12     2.33
 3       2.45     3.21
 3       3.45     5.11
 ......

我想针对不同的设备对Current与TimeSec(∫Idt)进行数值积分,并将数据收集到新的DataFrame中,如下所示:

Device   IntegratedCurrent  
 1         x
 2         y
 3         z

问题在于时间间隔不均匀,每个设备的数据数量也不均匀。

非常感谢!

阿米·塔沃里(Ami Tavory)

使用一些数值积分函数,例如scipy.integrate.trapz

from scipy import integrate

df.groupby(df.Device).apply(lambda g: integrate.trapz(g.Current, x=g.TimeSec))

请注意,使用梯形积分规则的该函数允许指定x值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章