【发布时间】:2021-10-06 15:24:34
【问题描述】:
所以我创建了一个名为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% 的变化并添加到i 行Change in W/L% 列。但是,当我执行代码时,数据框以 looking like this 结束。
例如,第 1 行的 Change in W/L% 列中应该只有 0;相反,它已被第 1 行和第 2 行之间的 W/L% 差异所取代,即使教练的姓名在两行中相同。谁能帮我解决这个问题?谢谢!
【问题讨论】:
-
python 中还有 continue 命令,它可以跳到 for/while 循环的下一次迭代。您可以这样做:如果 i%2== 0(或 1 跳过偶数行):继续。
标签: python pandas dataframe while-loop jupyter-notebook