gpt4 book ai didi

python - Pandas 数据框 - 使用 np.clip() 设置边界并从列中的特定值中减去值

转载 作者:太空宇宙 更新时间:2023-11-03 14:53:44 26 4
gpt4 key购买 nike

我有一个 pandas df 和 df['Batterycapacity'] = np.clip(df['total_load'].cumsum() + 5200,-np.inf,5200) I使用“Battery_capacity”中的值计算“total_load”中的值。

enter image description here

我无法解决的问题是,例如在 14:00:00“电池容量”为 5200,但在 15:00:00 它不会从 5200 中减去 -221,因为它从值中减去这是在后台增加的。我使用 np.clip() 将界限设置为 5200

所以我想要的是这样的:

time                total_load   battery capacity
2016-06-01 14:00:00 1980 5200
2016-06-01 15:00:00 -221 4979 (start subtracting from 5200)
2016-06-01 16:00:00 -14.5 4964.5

我如何将其实现到我的代码中?

谢谢!

最佳答案

问题是 np.clip 是在 np.cumsum 之后计算的,因此当总和到达时间 14:00:00 时> 总和远大于 5200,因此无需减法。

我认为循环可能是最简单的方法,但是其他人可能提供更好的矢量化解决方案

val = 0
for index,row in df.iterrows():
val = min(row['total_load']+val,5200)
df.loc[index,'Battery capacity'] = val

关于python - Pandas 数据框 - 使用 np.clip() 设置边界并从列中的特定值中减去值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45741232/

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