我构建了一个表示层次结构的数据帧。现在我尝试迭代地遍历这个数据帧(迭代虽然不好,但我认为这只适用于我的情况),根据程序计算更改数据帧的值并删除行。在
对于前两次迭代,程序正确读取数据帧行。然而在第三次迭代中(总是),我认为它是在读旧的值。在
万一我还没能说清楚,这是ipython笔记本:Ipython Notebook
初始数据帧:
c1 c2 c3 c4
19 21 20 14 0.718004
18 20 21 14 0.749271
17 19 18 17 0.724873
16 18 19 17 0.647143
15 17 16 11 0.348749
14 16 17 11 0.847751
13 15 14 9 0.597245
12 14 15 9 0.596115
11 13 12 8 0.549009
10 12 13 8 0.810719
9 11 10 7 0.328420
8 10 11 7 0.859816
7 9 8 6 0.449287
6 8 9 6 0.724799
5 7 6 4 0.320076
4 6 7 4 0.306391
3 5 4 2 0.809620
2 4 5 2 0.450804
1 3 2 1 0.771699
0 2 3 1 0.118202
有问题的代码:
^{pr2}$功能定义
^{3}$迭代1:行['c3']指向14
第一次迭代的结果帧:
c1 c2 c3 c4
19 21 20 9 0.718004
18 20 21 9 0.749271
17 19 18 17 0.724873
16 18 19 17 0.647143
15 17 16 11 0.348749
14 16 17 11 0.847751
13 15 14 9 0.597245
# Deleted with c1 = 14
11 13 12 8 0.549009
10 12 13 8 0.810719
......
......
迭代2:读取索引18。第['c3'行]指向9
第二次迭代的结果帧:
c1 c2 c3 c4
19 21 20 6 0.718004
18 20 21 6 0.749271
17 19 18 17 0.724873
16 18 19 17 0.647143
15 17 16 11 0.348749
.....
# Deleted row with c1 = 9
.........
迭代3:读取索引17。第['c3'行]指向17
第3次迭代的结果帧:
c1 c2 c3 c4
19 21 20 6 0.718004
18 20 21 6 0.749271
17 19 18 11 0.724873
16 18 19 11 0.647143
#Deleted row with c1 17
14 16 17 11 0.8477
.....
.....
.........
迭代4:读取索引16。第['c3'行]指向11。
但是,程序仍然以某种方式将行['c3']读取为17,然后我在执行函数时遇到错误,因为它在c1中找不到与17对应的匹配,因此,我的计算结果是被零除错误。我无法理解它在哪里读到c3为17。打印的数据框显示该索引处的更新值为11。在
有人能帮我解决这个错误吗?它是从哪里冒出来的?在
是我的错。我在更新我正在迭代的同一个数据帧。在
相关问题 更多 >
编程相关推荐