Home > Back-end >  How to skip rows in pandas dataframe iteration
How to skip rows in pandas dataframe iteration

Time:10-06

So I've created a dataframe called celtics and the last column is called 'Change in W/L%' and is right now filled with all 0s.

I want to calculate the change in Win-Loss Percentage (see 'W/L%' column) if the coach's name in one row of Coaches is different from the name of the coach right underneath that row. I have written this loop to try and execute this program:

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

So basically, if the name of the coach in Row i is different than the name of the coach in Row i 1, the change in W/L% between the two rows and is added to Row i of the Change in W/L% column. However, when I execute the code, the dataframe ends up looking like this.

For example, Row 1 should just have 0 in the Change in W/L% column; instead, it has been replaced by the difference in W/L% between Row 1 and Row 2, even though the coach's name is the same in both Rows. Could anyone help me resolve this issue? Thanks!

CodePudding user response:

Check out this solution from this question here on StackOverflow.

Skip rows while looping over data frame Pandas

  • Related