Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Python if statement not working correctly and no idea why

In my code I iterate through dataframes of each year to calculate the number of wins (increase between numbers) and losses (decrease between numbers), and the ratio of wins to losses. The loop I run correctly displays the right number of wins and losses in the dataframe they are eventually pushed to. However, when calculating the win/loss ratio, the if statement isn’t working for no real reason. Here is the loop:

trades = []
wins = []
losses = []
winloss = []
for df in df_years_grouped:
        total_trades = len(df)
        trades.append(total_trades)
        
        win = 0
        loss = 0
        for i, row in df.iterrows():
            if i == 0:
                continue
            elif (df[1][i] > df[1][i-1]):
                win += 1
            elif (df[1][i] < df[1][i-1]):
                loss += 1
        wins.append(win)
        losses.append(loss)
        
        if win == 0 & loss == 0:
            winloss.append(0)
        elif win > 0 & loss == 0:
            winloss.append('All Wins')
        elif win == 0 & loss > 0:
            winloss.append('All Losses')
        else:
            winloss.append(win/loss)

Here is the outcome in the Dataframe:

Trades Win  Lose W/L 
11     5    5    All Wins
42     21   20   All Wins
35     16   18   All Wins
14     9    4    All Wins
23     13   9    All Wins
12     7    4    All Wins
4      2    1    All Wins
4      2    1    All Wins
11     5    5    All Wins
6      3    2    All Wins
0      0    0    0
9      6    2    All Wins
2      0    1    0
16     6    9    All Wins
3      0    2    0
14     7    6    All Wins
206   106   99   1.070707

As you can see it works on one or two but fails on the most, making most of them wins?

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

I believe you should be using "and" instead of "&" in the if statements. You can read up on the differences here:

https://www.geeksforgeeks.org/difference-between-and-and-in-python/

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading