我有一列数值 我希望他们几个累加值要小于等于10,取小于10的最大累加值,一旦大于10就保留原值
我尝试过这样的代码,但是他会保留到大于我想要的阈值10w后的一位
想知道有没有什么解决方法
想知道有没有什么解决方法
original_value = [1,2,3,5,5,9,13]
lastvalue = original_value[0] # 把last value设为第一个值
newcum = []
for i in original_value[1:]: # 从第二个值开始
if lastvalue + i > 10: # 若加上新值已经超过了阈值
newcum.append(lastvalue) # 把已经有的值填入
lastvalue = i # 更新last value(包含新值大于10的情况)
else:
lastvalue += i # 若不超过即更新last value
newcum.append(lastvalue) # 最后一个值,在循环中不会填入,所以需要单独操作
# newcum : [6,10,9,13] # 得到目标
然后将original替换为df['金额']即可,可用
original = list(df['金额'])