我有一个DataFrame列表如下:
Device TimeSec Current
1 0.1 0.02
1 0.25 0.05
1 0.32 0.07
1 0.45 0.01
1 0.67 0.05
1 1.01 0.08
1 1.12 0.11
1 1.32 0.15
2 0.11 0.04
2 0.22 0.06
2 0.28 0.07
2 0.35 0.02
2 0.41 0.05
2 0.51 0.08
2 0.61 0.12
....
之前我问了类似的问题,我得到了帮助,并想出了如何通过" Device"和trapz集成每个"设备"组。 整个"设备"的代码数据集成是:
DeviceGroup = df.groupby('Device')
Result = DeviceGroup.apply(lambda x: integrate.trapz(x.Current, x=x.TimeSec))
这次我需要将第一个TimeSec数据集成到" Current"最低数据。你能告诉我怎么做吗?
答案 0 :(得分:1)
尝试使用此功能将数据帧过滤到最低值的值。
from scipy import integrate
df[df.groupby('Device')['Current'].transform(lambda x: x.diff().shift().bfill().gt(0).cumprod().astype(bool))]\
.groupby('Device').apply(lambda g: integrate.trapz(g['Current'], x=g.TimeSec))