我有两个熊猫系列的高度和距离。
如果高度大于500,我想将高度除以10。 与“距离”完全相同。
我尝试过了...
for i,j in map(None,Height, Distance):
if i > 500:
i = i/10
else:
i=i
if j > 500:
j=j/10
else:
j=j
有没有办法用两个逻辑语句而不是四个逻辑语句来做到这一点?
if i,j > 500:
i = i/10
j = j/10
else:
i=i+10
j=j+10
执行此操作时出现错误
如果i,j> 500: ^ SyntaxError:语法无效
请注意,如果我实现i> 500和j> 500,则必须满足这两种情况。
答案 0 :(得分:0)
注意:在编写此答案后,已对问题进行了编辑,并更改了用例。
您不应为此使用for循环:它们较慢且难以阅读。
请尝试以下代码:
Height[Height > 500] /= 10
Distance[Distance > 500] /= 10
这会将高度和距离大于500的值除以10。如果您需要保留原件的值,则可以先简单地进行复印:
corrected_height = Height.copy()
corrected_height[corrected_height > 500] /= 10
答案 1 :(得分:0)
您可以使用numpy
中的np.where,在其中可以为每个系列的一行指定更新条件:
import numpy as np
# For each series, divide value by 10 if condition is true else add 10
Height = np.where(Height > 500, Height/10, Height+10)
Distance = np.where(Distance > 500, Distance/10, Distance+10)