【发布时间】:2022-06-11 13:55:22
【问题描述】:
我有 5 组如下所示的值:
[[83.91649562 79.51353257]
[87.57474691 84.66544614]
[84.08067077 85.19063777]
[86.97440657 86.20994142]
[82.91694642 84.65734125]]
我的目标是将每组中的两个值与此标准进行比较:
- 在任何列表中,如果 item1 和 item2 >= 80 AND item1
- 在任何列表中,如果 item1 和 item2 为 item2,则返回 10
- 否则返回0
这就是我所做的
def myfunction(data):
data = data.iloc[:, [0, 1]].values
for x, y in enumerate(data):
if (x-y).all() >= 80 and x < y:
return -10
else:
return 0
现在我返回 0,但是第 3 和第 5 个列表符合条件并且应该返回 -10,所以我没有转到第二个 if 语句。 我还尝试使用以下方法设置数据:
data = data.iloc[:, [0, 1]].values.tolist()
将数据用作
[[83.91649561983937, 79.51353257164777], [87.57474691499445, 84.66544613660386], [84.08067077024245, 85.19063776835876], [86.97440656949847, 86.20994141824511], [82.91694641784167, 84.65734125252753]]
没有运气。我一直在使用 enumarate() ,因为我在没有收到错误消息方面取得了最大的成功,但我不确定这是否是我解决这个问题所需要的。
谢谢大家!
【问题讨论】:
标签: python list dataframe loops