如何在 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
所以我创建了一个名为 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