Pandas DataFrame 列数值积分

Fun*_*ore 7 python pandas

目前我有一个 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
 ......
Run Code Online (Sandbox Code Playgroud)

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

Device   IntegratedCurrent  
 1         x
 2         y
 3         z
Run Code Online (Sandbox Code Playgroud)

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

非常感谢!

Ami*_*ory 6

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

from scipy import integrate

df.groupby(df.Device).apply(lambda g: integrate.trapz(g.Current, x=g.TimeSec))
Run Code Online (Sandbox Code Playgroud)

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