gpt4 book ai didi

python - Trapz 对一定范围内的分组数据进行积分

转载 作者:行者123 更新时间:2023-12-01 09:26:23 26 4
gpt4 key购买 nike

我有一个 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
....
  1. 在每个设备数据集中,都有一个当前最小值
  2. 我想按“设备”对 DataFrame 进行分组并进行 trapz 集成
  3. 集成应该从每个“设备”数据的 TimeSec 开始到“当前”最小值

之前我问过类似的问题,我得到了帮助并弄清楚了如何按“设备”对数据进行分组,并为每个“设备”组进行 trapz 集成。整个“Device”数据集成的代码为:

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

这次我需要将第一个 TimeSec 数据整合到“当前”最小数据。你能告诉我该怎么做吗?

最佳答案

尝试使用此方法将数据框过滤为达到最小值的值。

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))

关于python - Trapz 对一定范围内的分组数据进行积分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50355583/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com