我正在做一个简单的pandas系列数据帧数学方程,在编译大量数据时,有些值会变为负值。是否有我可以添加的代码,以确保减法数学的值只有最小值为零?这就是我到目前为止所做的:
deltaT['data'] = (deltaT['hws'] - deltaT['hwr'])
谢谢!
答案 0 :(得分:3)
您可以创建<form onsubmit="Add()"> </form>
,然后使用deltaT['data']
将负值设置为0.
df.loc
答案 1 :(得分:3)
您可以在一次操作中选择clip_lower
。
deltaT['data'] = (deltaT['hws'] - deltaT['hwr']).clip_lower(0)
答案 2 :(得分:2)
选项1
简单
deltaT['data'] = deltaT.eval('(hws - hwr) * (hws > hwr)')
考虑deltaT
deltaT = pd.DataFrame(dict(hws=[5, 8], hwr=[8, 5]))
deltaT.assign(data=deltaT.eval('(hws - hwr) * (hws > hwr)'))
hwr hws data
0 8 5 0
1 5 8 3
选项2
与选项1相同,但使用numpy数组
r, s = (deltaT[c].values for c in ['hwr', 'hws'])
deltaT.assign(data=(s - r) * (s > r))
hwr hws data
0 8 5 0
1 5 8 3
选项3
创造性尝试
deltaT.assign(data=deltaT.eval('hws - hwr').to_frame().assign(_=0).max(1))
hwr hws data
0 8 5 0
1 5 8 3
答案 3 :(得分:1)
return Json(result);