如何在 pandas 数据帧迭代中跳过行

How to skip rows in pandas dataframe iteration

所以我创建了一个名为 celtics 的 dataframe,最后一列名为 'Change in W/L%',现在全为 0。

如果 Coaches 一行中的教练姓名与该行正下方的教练姓名不同,我想计算输赢百分比的变化(参见 'W/L%' 列) .我写了这个循环来尝试执行这个程序:

i = 0
while i < len(celtics) - 1:
    if (celtics["Coaches"].loc[i].split("("))[0] != (celtics["Coaches"].loc[i + 1].split("("))[0]:
        celtics["Change in W/L%"].loc[i] = celtics["W/L%"].loc[i] - celtics["W/L%"].loc[i + 1]
        i = i + 1
    i = i + 1

所以基本上,如果 i 行中的教练姓名与 i+1 行中的教练姓名不同,则 W/L% 两行之间的变化和添加到 Change in W/L% 列的 i 行。但是,当我执行代码时,数据帧最终变为 looking like this.

例如,第 1 行的 Change in W/L% 列中应该只有 0;相反,它已被第 1 行和第 2 行之间 W/L% 的差异所取代,即使两行中的教练姓名相同。谁能帮我解决这个问题?谢谢!

在 Whosebug 上查看这个问题的解决方案。

Skip rows while looping over data frame Pandas